Smart WordPress security that blocks bots automatically, guides you to what matters, and repairs problems — without drowning you in noise.
Prioritized issue groups from the latest Plugin Check scan
I18n
707
5 issue groups
Security
474
7 issue groups
Maintainability
212
13 issue groups
Sample message
A function call to __() with texts containing placeholders was found, but was not accompanied by a "translators:" comment on the line above to clarify the meaning of the placeholders.
Sample message
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$activity'.
Sample message
error_log() found. Debug code should not normally be used in production.
Sample message
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$args['after_title']'.
Sample message
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "$con->prefix( 'after_pre_options_store' )".
Sample message
Use placeholders and $wpdb->prepare(); found $dbCon
Sample message
The "shield/2fa" prefix is not a valid namespace/function/class/variable/constant prefix in PHP.
Sample message
var_dump() found. Debug code should not normally be used in production.
Sample message
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "login_body_class".
Sample message
The $text parameter must be a single text string literal. Found: $cfg->properties[ 'name' ]
Sample message
var_export() found. Debug code should not normally be used in production.
Sample message
Use of a direct database call is discouraged.
Sample message
Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().
Sample message
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
Sample message
Unescaped parameter $table used in $wpdb->get_results()\n$table assigned unsafely at line 15.
Sample message
Incorrect number of replacements passed to $wpdb->prepare(). Found 1 replacement parameters, expected 0.
Sample message
Use placeholders and $wpdb->prepare(); found interpolated variable {$table} at "DELETE FROM `{$table}`\n
Sample message
The $plural parameter must be a single text string literal. Found: $tabKey === 'plugins' ? '%s plugins need review.' : '%s themes need review.'
Sample message
The $single parameter must be a single text string literal. Found: $tabKey === 'plugins' ? '%s plugin needs review.' : '%s theme needs review.'
Sample message
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$oICWP_Wpsf".
Sample message
Processing form data without nonce verification.
Sample message
File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: is_writable().
Sample message
strip_tags() is discouraged. Use the more comprehensive wp_strip_all_tags() instead.
Sample message
Missing singular placeholder, needed for some languages. See https://codex.wordpress.org/I18n_for_WordPress_Developers#Plurals
Sample message
Offloading images, js, css, and other scripts to your servers or any remote service is disallowed.
Potential connections found in static code analysis.
Outbound calls
152
External assets
0
Incoming endpoints
3
No external asset domains detected.
No public endpoints detected.
wp_ajax
wp_ajax
2 score snapshots
v22.2.2
23
Latest
v22.1.3
23
Score
| Scan | Score | Findings | Errors | Warnings | Plugin | Check |
|---|---|---|---|---|---|---|
| Latest | 23 | 1,441 | 1,202 | 239 | v22.2.2 | 2.1.0 |
| 23 | 1,320 | 1,118 | 202 | v22.1.3 | 2.0.0 |
Author, categories, issues, domains, and nearby plugins.