Query Monitor is the developer tools panel for WordPress and WooCommerce.
Category Scores
Top Issues by Category
maintainability251
security60
Issues Details
317 issues found in latest scan
Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "Debug_Bar".
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "debug_bar_enqueue_scripts".
Detected usage of a non-sanitized input variable: $_ENV['APACHE_RUN_GROUP']
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
parse_url() is discouraged because of inconsistency in the output across PHP versions; use wp_parse_url() instead.
Detected usage of a possibly undefined superglobal array index: $_SERVER['REQUEST_METHOD']. Check that the array index exists before using it.
$_SERVER['REMOTE_ADDR'] not unslashed before sanitization. Use wp_unslash() or similar
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"<tr{$attr}>"'.
Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "DONOTCACHEPAGE".
error_reporting() can lead to full path disclosure.
Processing form data without nonce verification.
Processing form data without nonce verification.
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$debug_bar".
print_r() found. Debug code should not normally be used in production.
Stylesheets must be registered/enqueued via wp_enqueue_style()
Function "wp_get_development_mode()" requires WordPress 6.3.0, but your plugin minimum supported version is WordPress 6.1.0.
load_plugin_textdomain() has been discouraged since WordPress version 4.6. When your plugin is hosted on WordPress.org, you no longer need to manually include this function call for translations under your plugin slug. WordPress will automatically load the translations for you as needed.
Accessing the database directly should be avoided. Please use the $wpdb object and associated functions instead. Found: mysqli_errno.
Accessing the database directly should be avoided. Please use the $wpdb object and associated functions instead. Found: mysqli_get_client_version.
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "{$loader}_loader_src".
Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "qm_debug_bar_being_activated".
Traits declared by a theme/plugin should start with the theme/plugin prefix. Found: "QM_ArrayAccess".
debug_backtrace() found. Debug code should not normally be used in production.
set_error_handler() found. Debug code should not normally be used in production.
| Code | Type | Message | Count |
|---|---|---|---|
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound | WARNING | Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "Debug_Bar". | 147 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound | WARNING | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "debug_bar_enqueue_scripts". | 47 |
| WordPress.Security.ValidatedSanitizedInput.InputNotSanitized | WARNING | Detected usage of a non-sanitized input variable: $_ENV['APACHE_RUN_GROUP'] | 20 |
| missing_direct_file_access_protection | ERROR | PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit; | 14 |
| WordPress.WP.AlternativeFunctions.parse_url_parse_url | ERROR | parse_url() is discouraged because of inconsistency in the output across PHP versions; use wp_parse_url() instead. | 13 |
| WordPress.Security.ValidatedSanitizedInput.InputNotValidated | WARNING | Detected usage of a possibly undefined superglobal array index: $_SERVER['REQUEST_METHOD']. Check that the array index exists before using it. | 11 |
| WordPress.Security.ValidatedSanitizedInput.MissingUnslash | WARNING | $_SERVER['REMOTE_ADDR'] not unslashed before sanitization. Use wp_unslash() or similar | 11 |
| WordPress.Security.EscapeOutput.OutputNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"<tr{$attr}>"'. | 10 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedConstantFound | WARNING | Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "DONOTCACHEPAGE". | 8 |
| WordPress.PHP.DevelopmentFunctions.prevent_path_disclosure_error_reporting | WARNING | error_reporting() can lead to full path disclosure. | 4 |
| WordPress.Security.NonceVerification.Missing | WARNING | Processing form data without nonce verification. | 4 |
| WordPress.Security.NonceVerification.Recommended | WARNING | Processing form data without nonce verification. | 4 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound | WARNING | Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$debug_bar". | 3 |
| Squiz.PHP.DiscouragedFunctions.Discouraged | WARNING | The use of function ini_set() is discouraged | 2 |
| WordPress.PHP.DevelopmentFunctions.error_log_print_r | WARNING | print_r() found. Debug code should not normally be used in production. | 2 |
| WordPress.WP.EnqueuedResources.NonEnqueuedStylesheet | ERROR | Stylesheets must be registered/enqueued via wp_enqueue_style() | 2 |
| wp_function_not_compatible_with_requires_wp | ERROR | Function "wp_get_development_mode()" requires WordPress 6.3.0, but your plugin minimum supported version is WordPress 6.1.0. | 2 |
| PluginCheck.CodeAnalysis.DiscouragedFunctions.load_plugin_textdomainFound | WARNING | load_plugin_textdomain() has been discouraged since WordPress version 4.6. When your plugin is hosted on WordPress.org, you no longer need to manually include this function call for translations under your plugin slug. WordPress will automatically load the translations for you as needed. | 1 |
| WordPress.DB.RestrictedFunctions.mysql_mysqli_errno | ERROR | Accessing the database directly should be avoided. Please use the $wpdb object and associated functions instead. Found: mysqli_errno. | 1 |
| WordPress.DB.RestrictedFunctions.mysql_mysqli_get_client_version | ERROR | Accessing the database directly should be avoided. Please use the $wpdb object and associated functions instead. Found: mysqli_get_client_version. | 1 |
| WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound | WARNING | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "{$loader}_loader_src". | 1 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound | WARNING | Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "qm_debug_bar_being_activated". | 1 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedTraitFound | WARNING | Traits declared by a theme/plugin should start with the theme/plugin prefix. Found: "QM_ArrayAccess". | 1 |
| WordPress.PHP.DevelopmentFunctions.error_log_debug_backtrace | WARNING | debug_backtrace() found. Debug code should not normally be used in production. | 1 |
| WordPress.PHP.DevelopmentFunctions.error_log_set_error_handler | WARNING | set_error_handler() found. Debug code should not normally be used in production. | 1 |
Latest Snapshot
Findings
317
Errors
45
Warnings
272
Score History
First score snapshot
First scan completed Jun 19, 2026
v4.0.6 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2
Jun 19, 2026
v4.0.6
30
Latest
- Findings
- 317
- Errors
- 45
- Warnings
- 272
- Plugin Check
- 2.0.0
- Model
- 2026.06-mvp-static-v2
| Scan | Score | Findings | Errors | Warnings | Plugin | Plugin Check | Model |
|---|---|---|---|---|---|---|---|
| Jun 19, 2026Latest | 30 | 317 | 45 | 272 | v4.0.6 | 2.0.0 | 2026.06-mvp-static-v2 |