68% easy-query

Code Review | Easy Query - WP Query Builder

WordPress plugin Easy Query - WP Query Builder scored68%from 54 tests.

About plugin

  • Plugin page: easy-query
  • Plugin version: 2.0.4
  • PHP version: 7.4.16
  • WordPress compatibility: 3.6-5.2.2
  • WordPress version: 6.3.1
  • First release: Apr 19, 2015
  • Latest release: Aug 11, 2019
  • Number of updates: 48
  • Update frequency: every 33.1 days
  • Top authors: dcooney (100%)

Code review

54 tests

User reviews

5 reviews

Install metrics

600+ active /18,978 total downloads

Benchmarks

Plugin footprint 65% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
Installer ran successfully

Server metrics [RAM: ▲0.14MB] [CPU: ▼4.60ms] Passed 4 tests

An overview of server-side resources used by Easy Query - WP Query Builder
Normal server usage
PageMemory (MB)CPU Time (ms)
Home /3.54 ▲0.0740.02 ▼6.02
Dashboard /wp-admin3.46 ▲0.1652.20 ▲0.80
Posts /wp-admin/edit.php3.57 ▲0.2253.63 ▼2.05
Add New Post /wp-admin/post-new.php6.04 ▲0.1694.31 ▼11.14
Media Library /wp-admin/upload.php3.38 ▲0.1643.07 ▲4.69
Easy Query /wp-admin/options-general.php?page=easy-query3.3635.39

Server storage [IO: ▲1.19MB] [DB: ▲0.00MB] Passed 3 tests

A short overview of filesystem and database impact
This plugin installed successfully
Filesystem: 86 new files
Database: 1 new table, 7 new options
New tables
wp_easy_query
New WordPress options
easy_query_version
widget_theysaidso_widget
widget_recent-posts
can_compress_scripts
theysaidso_admin_options
widget_recent-comments
db_upgraded

Browser metrics Passed 4 tests

Checking browser requirements for Easy Query - WP Query Builder
This plugin renders optimally with no browser resource issues detected
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,803 ▲5713.23 ▼1.151.98 ▲0.2642.91 ▼0.66
Dashboard /wp-admin2,207 ▲164.90 ▼1.01110.63 ▲8.6639.71 ▼3.33
Posts /wp-admin/edit.php2,090 ▼22.00 ▼0.0646.87 ▲5.8331.58 ▼5.34
Add New Post /wp-admin/post-new.php1,533 ▼423.30 ▲5.05663.60 ▲26.1355.18 ▼8.65
Media Library /wp-admin/upload.php1,392 ▲74.26 ▲0.0196.73 ▼8.4343.43 ▼2.35
Easy Query /wp-admin/options-general.php?page=easy-query1,1182.2337.3997.62

Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 50% from 4 tests

🔸 Tests weight: 35 | It is important to correctly uninstall your plugin, without leaving any traces
These items require your attention
  • The plugin did not uninstall successfully, leaving 1 table in the database
    • wp_easy_query
  • This plugin did not uninstall successfully, leaving 7 options in the database
    • theysaidso_admin_options
    • widget_theysaidso_widget
    • widget_recent-comments
    • easy_query_version
    • db_upgraded
    • can_compress_scripts
    • widget_recent-posts

Smoke tests 50% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | A smoke test targeting server-side errors
The smoke test was a success, however most plugin functionality was not tested

SRP 0% from 2 tests

🔹 Tests weight: 20 | The single-responsibility principle: PHP files have to remain inert when accessed directly, throwing no errors and performing no actions
Almost there! Just fix the following items
  • 1× PHP files perform the task of outputting text when accessed with GET requests:
    • > /wp-content/plugins/easy-query/admin/includes/components/template.php
  • 31× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Call to undefined function _e() in wp-content/plugins/easy-query/admin/includes/cta/extend.php:3
    • > PHP Warning
      Use of undefined constant EQ_PATH - assumed 'EQ_PATH' (this will throw an Error in a future version of PHP) in wp-content/plugins/easy-query/admin/views/settings.php on line 18
    • > PHP Warning
      Use of undefined constant EQ_TITLE - assumed 'EQ_TITLE' (this will throw an Error in a future version of PHP) in wp-content/plugins/easy-query/admin/views/examples.php on line 5
    • > PHP Fatal error
      Uncaught Error: Call to undefined function _e() in wp-content/plugins/easy-query/admin/query-generator/generator.php:3
    • > PHP Fatal error
      Uncaught Error: Call to undefined function _e() in wp-content/plugins/easy-query/admin/includes/cta/templating.php:2
    • > PHP Warning
      Use of undefined constant EQ_TAGLINE - assumed 'EQ_TAGLINE' (this will throw an Error in a future version of PHP) in wp-content/plugins/easy-query/admin/views/settings.php on line 6
    • > PHP Fatal error
      Uncaught Error: Call to undefined function _e() in wp-content/plugins/easy-query/admin/views/template.php:4
    • > PHP Warning
      Use of undefined constant EQ_TITLE - assumed 'EQ_TITLE' (this will throw an Error in a future version of PHP) in wp-content/plugins/easy-query/admin/views/template.php on line 4
    • > PHP Notice
      Trying to get property 'max_num_pages' of non-object in wp-content/plugins/easy-query/core/paging.php on line 3
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/easy-query/admin/editor/editor.php:5

User-side errors Passed 1 test

🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
No browser errors were detected

Optimizations

Plugin configuration 93% from 29 tests

readme.txt 88% from 16 tests

The readme.txt file uses markdown syntax to describe your plugin to the world
These attributes need your attention:
  • Screenshots: A description for screenshot #4 is missing in easy-query/assets to your readme.txt
  • Tags: Please delete some tags, you are using 14 tag instead of maximum 10
You can look at the official readme.txt

easy-query/easy-query.php Passed 13 tests

This is the main PHP file of "Easy Query - WP Query Builder" version 2.0.4, providing information about the plugin in the header fields and serving as the principal entry point to the plugin's functions
37 characters long description:
A query builder plugin for WordPress.

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | This is a short overview of programming languages used in this plugin, detecting executable files
Success! There were no dangerous files found in this plugin16,770 lines of code in 65 files:
LanguageFilesBlank linesComment linesLines of code
JavaScript251,3071,29810,255
CSS42791332,802
PHP244153382,020
HTML1222511,693

PHP code Passed 2 tests

A short review of cyclomatic complexity and code structure
This plugin has no cyclomatic complexity problems
Cyclomatic complexity
Average complexity per logical line of code0.27
Average class complexity33.00
▷ Minimum class complexity33.00
▷ Maximum class complexity33.00
Average method complexity6.33
▷ Minimum method complexity1.00
▷ Maximum method complexity30.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes1
▷ Abstract classes00.00%
▷ Concrete classes1100.00%
▷ Final classes00.00%
Methods6
▷ Static methods00.00%
▷ Public methods6100.00%
▷ Protected methods00.00%
▷ Private methods00.00%
Functions33
▷ Named functions33100.00%
▷ Anonymous functions00.00%
Constants12
▷ Global constants12100.00%
▷ Class constants00.00%
▷ Public constants00.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

Using a strong compression for your PNG files is a great way to speed-up your plugin
14 PNG files occupy 0.18MB with 0.11MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
admin/img/logos/instant-images.png1.58KB0.50KB▼ 68.09%
admin/img/easy-query-go-pro.png162.58KB54.39KB▼ 66.55%
admin/img/bkg-radio_off.png1.41KB0.50KB▼ 64.65%
admin/img/bkg-radio_on.png1.52KB0.57KB▼ 62.71%
admin/img/easy-query-logo-48x48.png1.97KB1.08KB▼ 44.97%