Query Wrangler

Query Wrangler provides an intuitive interface for creating complex WP queries as shortcodes and widgets. UI based on Drupal Views.

v1.5.57Jonathan DaggerhartUpdated Added 700 installs100% rating
28
Score
628
Errors
229
Warnings
+0
Change

Category Scores

Security0
Repo85
Performance100
Maintainability28

Issues to Review

Prioritized issue groups from the latest Plugin Check scan

857 findings

Security

659

13 issue groups

Maintainability

174

10 issue groups

I18n

12

2 issue groups

ERRORSecurityOutput is not escapedAll output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$all_fields[$field['hook_key']]['title']'.484
Category
Security
Occurrences
484
Severity
error

Sample message

All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$all_fields[$field['hook_key']]['title']'.

ERRORMaintainabilityMissing direct file access protectionPHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;79
Category
Maintainability
Occurrences
79
Severity
error

Sample message

PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;

WARNINGSecurityNonce verification recommendedProcessing form data without nonce verification.39
Category
Security
Occurrences
39
Severity
warning

Sample message

Processing form data without nonce verification.

WARNINGMaintainabilityDirect QueryUse of a direct database call is discouraged.31
Category
Maintainability
Occurrences
31
Severity
warning

Sample message

Use of a direct database call is discouraged.

WARNINGSecurityRequest data is not unslashed$_GET[$options['display']['page']['pager']['pager_key']] not unslashed before sanitization. Use wp_unslash() or similar29
Category
Security
Occurrences
29
Severity
warning

Sample message

$_GET[$options['display']['page']['pager']['pager_key']] not unslashed before sanitization. Use wp_unslash() or similar

WARNINGSecurityInput is not sanitizedDetected usage of a non-sanitized input variable: $_GET[$options['display']['page']['pager']['pager_key']]28
Category
Security
Occurrences
28
Severity
warning

Sample message

Detected usage of a non-sanitized input variable: $_GET[$options['display']['page']['pager']['pager_key']]

WARNINGMaintainabilityNo CachingDirect database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().27
Category
Maintainability
Occurrences
27
Severity
warning

Sample message

Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().

WARNINGSecurityInput is not validatedDetected usage of a possibly undefined superglobal array index: $_GET['edit']. Check that the array index exists before using it.23
Category
Security
Occurrences
23
Severity
warning

Sample message

Detected usage of a possibly undefined superglobal array index: $_GET['edit']. Check that the array index exists before using it.

WARNINGSecurityMissing nonce verificationProcessing form data without nonce verification.16
Category
Security
Occurrences
16
Severity
warning

Sample message

Processing form data without nonce verification.

ERRORSecuritySQL query is not preparedUse placeholders and $wpdb->prepare(); found $sql14
Category
Security
Occurrences
14
Severity
error

Sample message

Use placeholders and $wpdb->prepare(); found $sql

Show 15 more
ERRORSecurityDatabase parameter is not escaped11
Category
Security
Occurrences
11
Severity
error

Sample message

Unescaped parameter $sql used in $wpdb->get_results()\n$sql assigned unsafely at line 115.

WARNINGMaintainabilityslow db query meta key8
Category
Maintainability
Occurrences
8
Severity
warning

Sample message

Detected usage of meta_key, possible slow query.

ERRORMaintainabilityDeprecated parameter: get_terms parameter 27
Category
Maintainability
Occurrences
7
Severity
error

Sample message

The parameter "array( 'fields' => 'id=>name', 'hide_empty' => 0 )" at position #2 of get_terms() has been deprecated since WordPress version 4.5.0. Instead do not pass the parameter.

ERRORI18nMissing Arg Domain7
Category
I18n
Occurrences
7
Severity
error

Sample message

Missing $domain parameter in function call to __().

WARNINGMaintainabilityslow db query meta value6
Category
Maintainability
Occurrences
6
Severity
warning

Sample message

Detected usage of meta_value, possible slow query.

WARNINGMaintainabilityerror log print r6
Category
Maintainability
Occurrences
6
Severity
warning

Sample message

print_r() found. Debug code should not normally be used in production.

ERRORI18nText Domain Mismatch5
Category
I18n
Occurrences
5
Severity
error

Sample message

Mismatched text domain. Expected 'query-wrangler' but got 'querywranglerwidget'.

ERRORMaintainabilityShort PHP open tag found4
Category
Maintainability
Occurrences
4
Severity
error

Sample message

Short PHP opening tag used with echo; expected "<?php echo esc_attr ..." but found "<?= esc_attr ..."

WARNINGSecurityDatabase parameter is not escaped4
Category
Security
Occurrences
4
Severity
warning

Sample message

Unescaped parameter $table used in $wpdb-&gt;get_row()\n$table assigned unsafely at line 284.

ERRORSecurityUnsafe printing function4
Category
Security
Occurrences
4
Severity
error

Sample message

All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'.

ERRORMaintainabilityNon Enqueued Stylesheet4
Category
Maintainability
Occurrences
4
Severity
error

Sample message

Stylesheets must be registered/enqueued via wp_enqueue_style()

WARNINGSecurityInterpolated SQL is not prepared3
Category
Security
Occurrences
3
Severity
warning

Sample message

Use placeholders and $wpdb-&gt;prepare(); found interpolated variable {$table_name} at &quot;SELECT `id`,`name`,`slug`,`type`,`path`,`data` FROM {$table_name} WHERE `id` = %d&quot;

ERRORSecurityQuoted Simple Placeholder2
Category
Security
Occurrences
2
Severity
error

Sample message

Simple placeholders should not be quoted in the query string in $wpdb->prepare(). Found: '%s'.

WARNINGSecuritywp redirect wp redirect2
Category
Security
Occurrences
2
Severity
warning

Sample message

wp_redirect() found. Using wp_safe_redirect(), along with the &quot;allowed_redirect_hosts&quot; filter if needed, can help avoid any chances of malicious redirects within code. It is also important to remember to call exit() after a redirect so that no other unwanted code is executed.

ERRORMaintainabilitystrip tags strip tags2
Category
Maintainability
Occurrences
2
Severity
error

Sample message

strip_tags() is discouraged. Use the more comprehensive wp_strip_all_tags() instead.

External Connections

Potential connections found in static code analysis.

9 domains

Outbound calls

18

External assets

0

Incoming endpoints

4

Notable Domains

code.google.com2 · outbound
daggerhartlab.com2 · outbound
google.com1 · outbound
stackoverflow.com1 · outbound

Platform / Reference Domains

codex.wordpress.org4 · platform/reference
github.com3 · platform/reference
wordpress.org3 · platform/reference
gnu.org1 · platform/reference

External Asset Domains

No external asset domains detected.

Incoming Endpoints

wp_ajax_nopriv_qw_form_ajaxpublic

wp_ajax

Admin AJAX endpoints3
wp_ajax_qw_data_ajaxauthenticated

wp_ajax

wp_ajax_qw_form_ajaxauthenticated

wp_ajax

wp_ajax_qw_meta_key_autocompleteauthenticated

wp_ajax

Score History

First score snapshot

v1.5.57

28

Latest

Findings
857
Errors
628
Warnings
229
Check
2.0.0

Relationship Map

Author, categories, issues, domains, and nearby plugins.

34 nodes

Related Plugins

Hide Drafts in Menus

1k+ active installs

100
Essential Widgets

10k+ active installs

99
Auto SEO

500 active installs

98
Auto Submenu

2k+ active installs

98
No Page Comment

10k+ active installs

98