WP-Stats

Display your WordPress blog statistics. Ranging from general total statistics, some of my plugins statistics and top 10 statistics.

v2.56Lester ChanUpdated Added 2k+ installs52% rating
32
Score
237
Errors
126
Warnings
+0
Change

Category Scores

Security0
Repo80
Performance100
Maintainability49

Issues to Review

Prioritized issue groups from the latest Plugin Check scan

363 findings

Security

193

10 issue groups

Maintainability

107

12 issue groups

I18n

57

3 issue groups

ERRORSecurityOutput Not EscapedAll output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$args['after_title']'.117
Category
Security
Occurrences
117
Severity
error

Sample message

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

ERRORI18nMissing Translators CommentA 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.50
Category
I18n
Occurrences
50
Severity
error

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.

ERRORSecurityUnsafe Printing FunctionAll output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'.37
Category
Security
Occurrences
37
Severity
error

Sample message

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

WARNINGMaintainabilityNon Prefixed Variable FoundGlobal variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$admin_comments_members_stats".29
Category
Maintainability
Occurrences
29
Severity
warning

Sample message

Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$admin_comments_members_stats".

WARNINGMaintainabilityNon Prefixed Function FoundFunctions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "display_stats".18
Category
Maintainability
Occurrences
18
Severity
warning

Sample message

Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "display_stats".

WARNINGMaintainabilityNon Prefixed Hookname FoundHook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "comment_text".17
Category
Maintainability
Occurrences
17
Severity
warning

Sample message

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "comment_text".

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

Sample message

Use of a direct database call is discouraged.

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

Sample message

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

WARNINGSecurityInterpolated Not PreparedUse placeholders and $wpdb->prepare(); found interpolated variable $comment_author_sql at "SELECT $wpdb->posts.*, $wpdb->comments.* FROM $wpdb->comments INNER JOIN $wpdb->posts ON $wpdb->comments.comment_post_ID = $wpdb->posts.ID WHERE comment_author = '$comment_author_sql' AND comment_approved = '1' AND post_date < '"12
Category
Security
Occurrences
12
Severity
warning

Sample message

Use placeholders and $wpdb->prepare(); found interpolated variable $comment_author_sql at "SELECT $wpdb->posts.*, $wpdb->comments.* FROM $wpdb->comments INNER JOIN $wpdb->posts ON $wpdb->comments.comment_post_ID = $wpdb->posts.ID WHERE comment_author = '$comment_author_sql' AND comment_approved = '1' AND post_date < '"

ERRORSecurityNot PreparedUse placeholders and $wpdb->prepare(); found current_time6
Category
Security
Occurrences
6
Severity
error

Sample message

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

Show 15 more
ERRORI18nUnordered Placeholders Text6
Category
I18n
Occurrences
6
Severity
error

Sample message

Multiple placeholders in translatable strings should be ordered. Expected "%1$s, %2$s", but got "%s, %s" in '%s @ %s'.

WARNINGSecurityMissing Unslash5
Category
Security
Occurrences
5
Severity
warning

Sample message

$_COOKIE['wp-postpass_'.COOKIEHASH] not unslashed before sanitization. Use wp_unslash() or similar

ERRORMaintainabilitystrip tags strip tags5
Category
Maintainability
Occurrences
5
Severity
error

Sample message

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

WARNINGSecurityUnescaped DBParameter4
Category
Security
Occurrences
4
Severity
warning

Sample message

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

WARNINGSecurityRecommended4
Category
Security
Occurrences
4
Severity
warning

Sample message

Processing form data without nonce verification.

WARNINGSecurityInput Not Sanitized4
Category
Security
Occurrences
4
Severity
warning

Sample message

Detected usage of a non-sanitized input variable: $_COOKIE['wp-postpass_'.COOKIEHASH]

ERRORSecurityUnescaped DBParameter3
Category
Security
Occurrences
3
Severity
error

Sample message

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

ERRORMaintainabilityAdd option Param3Found3
Category
Maintainability
Occurrences
3
Severity
error

Sample message

The parameter "'Stats Most Limit'" at position #3 of add_option() has been deprecated since WordPress version 2.3.0. Instead do not pass the parameter.

WARNINGMaintainabilitytrademarked term3
Category
Maintainability
Occurrences
3
Severity
warning

Sample message

The plugin name includes a restricted term. Your chosen plugin name - "WP-Stats" - contains the restricted term "wp" which cannot be used at all in your plugin name.

ERRORMaintainabilitywp get sites Found2
Category
Maintainability
Occurrences
2
Severity
error

Sample message

wp_get_sites() has been deprecated since WordPress version 4.6.0. Use get_sites() instead.

ERRORMaintainabilitymissing direct file access protection2
Category
Maintainability
Occurrences
2
Severity
error

Sample message

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

WARNINGI18nload plugin textdomain Found1
Category
I18n
Occurrences
1
Severity
warning

Sample message

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.

WARNINGMaintainabilityNon Prefixed Class Found1
Category
Maintainability
Occurrences
1
Severity
warning

Sample message

Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "WP_Widget_Stats".

WARNINGSecurityInput Not Validated1
Category
Security
Occurrences
1
Severity
warning

Sample message

Detected usage of a possibly undefined superglobal array index: $_COOKIE['wp-postpass_'.COOKIEHASH]. Check that the array index exists before using it.

ERRORMaintainabilityclean url Found1
Category
Maintainability
Occurrences
1
Severity
error

Sample message

clean_url() has been deprecated since WordPress version 3.0.0. Use esc_url() instead.

Score History

First score snapshot

v2.56

32

Latest

Findings
363
Errors
237
Warnings
126
Check
2.0.0

Related Plugins

Search Analytics for WP

3k+ active installs

99
Clicky by Yoast

4k+ active installs

95
95
NewStatPress

8k+ active installs

94