A highly customizable, easy-to-use popular posts plugin!
Category Scores
Top Issues by Category
maintainability223
security95
i18n41
Issues Details
377 issues found in latest scan
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$IDs_to_exclude".
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "the_title".
$_GET['end_date'] not unslashed before sanitization. Use wp_unslash() or similar
Detected usage of a non-sanitized input variable: $_GET['end_date']
Detected usage of a possibly undefined superglobal array index: $_POST['ajax']. Check that the array index exists before using it.
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.
Using exclusionary parameters, like exclude, in calls to get_posts() should be done with caution, see https://wpvip.com/documentation/performance-improvements-by-removing-usage-of-post__not_in/ for more information.
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$icon_file'.
parse_url() is discouraged because of inconsistency in the output across PHP versions; use wp_parse_url() instead.
Unescaped parameter $query used in $wpdb->get_var()\n$query assigned unsafely at line 263.
date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead.
Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "wordpress_popular_posts_delete_thumb_cache".
unlink() is discouraged. Use wp_delete_file() to delete a file.
In footer ($in_footer) is not set explicitly wp_enqueue_script; It is recommended to load scripts in the footer. Please set this value to `true` to load it in the footer, or explicitly `false` if it should be loaded in the header.
trigger_error() found. Debug code should not normally be used in production.
The plugin name includes a restricted term. Your chosen plugin name - "WP Popular Posts" - contains the restricted term "wp" which cannot be used at all in your plugin name.
Offloading images, js, css, and other scripts to your servers or any remote service is disallowed.
error_log() found. Debug code should not normally be used in production.
The use of function wp_get_sidebars_widgets() is forbidden
Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().
Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "Elementor_WPP_Widget".
Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "WPP_VERSION".
File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: chmod().
| Code | Type | Message | Count |
|---|---|---|---|
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound | WARNING | Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$IDs_to_exclude". | 121 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound | WARNING | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "the_title". | 55 |
| WordPress.Security.ValidatedSanitizedInput.MissingUnslash | WARNING | $_GET['end_date'] not unslashed before sanitization. Use wp_unslash() or similar | 34 |
| WordPress.Security.ValidatedSanitizedInput.InputNotSanitized | WARNING | Detected usage of a non-sanitized input variable: $_GET['end_date'] | 28 |
| WordPress.Security.ValidatedSanitizedInput.InputNotValidated | WARNING | Detected usage of a possibly undefined superglobal array index: $_POST['ajax']. Check that the array index exists before using it. | 22 |
| WordPress.WP.I18n.MissingTranslatorsComment | ERROR | 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. | 21 |
| WordPress.WP.I18n.MissingArgDomain | ERROR | Missing $domain parameter in function call to __(). | 20 |
| WordPressVIPMinimum.Performance.WPQueryParams.PostNotIn_exclude | WARNING | Using exclusionary parameters, like exclude, in calls to get_posts() should be done with caution, see https://wpvip.com/documentation/performance-improvements-by-removing-usage-of-post__not_in/ for more information. | 13 |
| missing_direct_file_access_protection | ERROR | PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit; | 8 |
| WordPress.Security.EscapeOutput.OutputNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$icon_file'. | 6 |
| 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. | 6 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | WARNING | Unescaped parameter $query used in $wpdb->get_var()\n$query assigned unsafely at line 263. | 5 |
| WordPress.DateTime.RestrictedFunctions.date_date | ERROR | date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead. | 5 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound | WARNING | Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "wordpress_popular_posts_delete_thumb_cache". | 5 |
| WordPress.WP.AlternativeFunctions.unlink_unlink | ERROR | unlink() is discouraged. Use wp_delete_file() to delete a file. | 4 |
| WordPress.WP.EnqueuedResourceParameters.NotInFooter | WARNING | In footer ($in_footer) is not set explicitly wp_enqueue_script; It is recommended to load scripts in the footer. Please set this value to `true` to load it in the footer, or explicitly `false` if it should be loaded in the header. | 4 |
| WordPress.PHP.DevelopmentFunctions.error_log_trigger_error | WARNING | trigger_error() found. Debug code should not normally be used in production. | 3 |
| trademarked_term | WARNING | The plugin name includes a restricted term. Your chosen plugin name - "WP Popular Posts" - contains the restricted term "wp" which cannot be used at all in your plugin name. | 3 |
| PluginCheck.CodeAnalysis.Offloading.OffloadedContent | ERROR | Offloading images, js, css, and other scripts to your servers or any remote service is disallowed. | 2 |
| WordPress.PHP.DevelopmentFunctions.error_log_error_log | WARNING | error_log() found. Debug code should not normally be used in production. | 2 |
| Generic.PHP.ForbiddenFunctions.Found | ERROR | The use of function wp_get_sidebars_widgets() is forbidden | 1 |
| WordPress.DB.DirectDatabaseQuery.NoCaching | WARNING | Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete(). | 1 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound | WARNING | Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "Elementor_WPP_Widget". | 1 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedConstantFound | WARNING | Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "WPP_VERSION". | 1 |
| WordPress.WP.AlternativeFunctions.file_system_operations_chmod | ERROR | File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: chmod(). | 1 |
Latest Snapshot
Findings
377
Errors
77
Warnings
300
Score History
First score snapshot
First scan completed Jun 19, 2026
v7.4.0 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2
Jun 19, 2026
v7.4.0
29
Latest
- Findings
- 377
- Errors
- 77
- Warnings
- 300
- Plugin Check
- 2.0.0
- Model
- 2026.06-mvp-static-v2
| Scan | Score | Findings | Errors | Warnings | Plugin | Plugin Check | Model |
|---|---|---|---|---|---|---|---|
| Jun 19, 2026Latest | 29 | 377 | 77 | 300 | v7.4.0 | 2.0.0 | 2026.06-mvp-static-v2 |