Benchmarks
Plugin footprint 40% from 16 tests
Installer 0% from 1 test
🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
You still need to fix the following installer errors
- This plugin did not install gracefully
- > Deprecated in wp-content/plugins/wp-rss-by-publishers/classes/feedwordpress/feedfinder.class.php+14
Methods with the same name as their class will not be constructors in a future version of PHP; FeedFinder has a deprecated constructor
Server metrics [RAM: ▼1.11MB] [CPU: ▼327.50ms] Passed 4 tests
A check of server-side resources used by WP RSS By Publishers
Normal server usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.64 ▲0.12 | 65.44 ▲15.93 |
Dashboard /wp-admin | 3.22 ▼0.18 | 17.08 ▼16.57 |
Posts /wp-admin/edit.php | 3.22 ▼0.42 | 18.14 ▼20.15 |
Add New Post /wp-admin/post-new.php | 3.22 ▼3.75 | 17.92 ▼1,260.31 |
Media Library /wp-admin/upload.php | 3.22 ▼0.08 | 15.88 ▼12.97 |
Rules /wp-admin/admin.php?page=wsysadmin_rules | 3.22 | 17.94 |
Admin /wp-admin/admin.php?page=wsysadmin | 3.22 | 18.67 |
Feeds /wp-admin/admin.php?page=wsysadmin_feeds | 3.22 | 17.49 |
All publishers /wp-admin/admin.php?page=wsysadmin_publishers | 3.22 | 17.56 |
Settings /wp-admin/admin.php?page=wsysadmin_settings | 3.22 | 16.67 |
Add publisher /wp-admin/admin.php?page=wsysadmin_add_publisher | 3.22 | 17.99 |
Server storage [IO: ▲0.61MB] [DB: ▲0.00MB] Passed 3 tests
A short overview of filesystem and database impact
The plugin installed successfully
Filesystem: 46 new files
Database: no new tables, 1 new option
New WordPress options |
---|
recovery_mode_email_last_sent |
Browser metrics Passed 4 tests
A check of browser resources used by WP RSS By Publishers
Minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,807 ▲63 | 15.98 ▲0.28 | 5.77 ▼0.37 | 2.47 ▲0.30 |
Dashboard /wp-admin | 2,931 ▲73 | 6.18 ▼0.03 | 125.26 ▼8.86 | 154.42 ▲1.60 |
Posts /wp-admin/edit.php | 2,769 ▲75 | 3.30 ▲0.07 | 65.01 ▲0.38 | 143.83 ▲0.52 |
Add New Post /wp-admin/post-new.php | 1,672 ▲11 | 18.99 ▲3.02 | 410.94 ▼30.45 | 168.89 ▲14.40 |
Media Library /wp-admin/upload.php | 1,743 ▲45 | 5.68 ▲0.21 | 125.02 ▼15.24 | 192.79 ▼3.22 |
Rules /wp-admin/admin.php?page=wsysadmin_rules | 885 | 1.97 | 36.46 | 83.30 |
Admin /wp-admin/admin.php?page=wsysadmin | 1,012 | 2.75 | 54.02 | 70.80 |
Feeds /wp-admin/admin.php?page=wsysadmin_feeds | 885 | 1.97 | 36.96 | 83.56 |
All publishers /wp-admin/admin.php?page=wsysadmin_publishers | 1,408 | 2.78 | 57.35 | 111.49 |
Settings /wp-admin/admin.php?page=wsysadmin_settings | 1,093 | 2.77 | 54.96 | 110.47 |
Add publisher /wp-admin/admin.php?page=wsysadmin_add_publisher | 1,325 | 2.78 | 53.80 | 139.77 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 50% from 4 tests
🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
It is recommended to fix the following
- Uninstall procedure had uncaught errors
- > User notice in wp-includes/functions.php+5768
add_submenu_page was called incorrectly. The seventh parameter passed to add_submenu_page() should be an integer representing menu position. Please see Debugging in WordPress for more information. (This message was added in version 5.3.0.)
- This plugin did not uninstall successfully, leaving 1 option in the database
- recovery_mode_email_last_sent
Smoke tests 25% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | A shallow check that no server-side errors were triggered
Almost there, just fix the following server-side errors
- 6 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=wsysadmin_add_publisher
- > User notice in wp-includes/functions.php+5768
add_submenu_page was called incorrectly. The seventh parameter passed to add_submenu_page() should be an integer representing menu position. Please see Debugging in WordPress for more information. (This message was added in version 5.3.0.)
- > GET request to /wp-admin/admin.php?page=wsysadmin_rules
- > Error in wp-content/plugins/wp-rss-by-publishers/templates/publishers.php+7
Uncaught Error: Call to a member function prepare_items() on null in wp-content/plugins/wp-rss-by-publishers/templates/publishers.php:7
Stack trace:
#0 wp-content/plugins/wp-rss-by-publishers/wp-rss-by-publisher.php(365): include()
#1 wp-includes/class-wp-hook.php(307): WP_WsysAdmin->action()
#2 wp-includes/class-wp-hook.php(331): WP_Hook->apply_filters()
#3 wp-includes/plugin.php(474): WP_Hook->do_action()
#4 wp-admin/admin.php(259): do_action()
#5 {main}
thrown- > GET request to /wp-admin/admin.php?page=wsysadmin_feeds
- > Error in wp-content/plugins/wp-rss-by-publishers/templates/publishers.php+7
Uncaught Error: Call to a member function prepare_items() on null in wp-content/plugins/wp-rss-by-publishers/templates/publishers.php:7
Stack trace:
#0 wp-content/plugins/wp-rss-by-publishers/wp-rss-by-publisher.php(332): include()
#1 wp-includes/class-wp-hook.php(307): WP_WsysAdmin->action()
#2 wp-includes/class-wp-hook.php(331): WP_Hook->apply_filters()
#3 wp-includes/plugin.php(474): WP_Hook->do_action()
#4 wp-admin/admin.php(259): do_action()
#5 {main}
thrown
SRP 0% from 2 tests
🔹 Tests weight: 20 | The single-responsibility principle applies for WordPress plugins as well - please make sure your PHP files perform no actions when accessed directly
Almost there! Just fix the following items
- 1× PHP files perform the action of outputting non-empty strings when accessed directly:
- > /wp-content/plugins/wp-rss-by-publishers/classes/feedwordpress/feedwordpressparsedpostmeta.class.php
- 48× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
- > PHP Notice
Trying to access array offset on value of type null in wp-content/plugins/wp-rss-by-publishers/templates/feed-report.php on line 9
- > PHP Fatal error
Uncaught Error: Class 'WSYS_DB_Table' not found in wp-content/plugins/wp-rss-by-publishers/classes/wsys-publisher.php:3
- > PHP Notice
Trying to access array offset on value of type null in wp-content/plugins/wp-rss-by-publishers/templates/feed-report.php on line 8
- > PHP Notice
Undefined variable: results in wp-content/plugins/wp-rss-by-publishers/templates/feed-report.php on line 9
- > PHP Fatal error
Uncaught Error: Class 'WSYS_DB_Table' not found in wp-content/plugins/wp-rss-by-publishers/classes/wsys-feed.php:3
- > PHP Fatal error
require_once(): Failed opening required 'ABSPATHwp-admin/includes/class-wp-list-table.php' (include_path='.:/usr/share/php') in wp-content/plugins/wp-rss-by-publishers/classes/wsys-feed-table.php on line 3
- > PHP Notice
Trying to access array offset on value of type null in wp-content/plugins/wp-rss-by-publishers/templates/feed-report.php on line 6
- > PHP Notice
Trying to get property 'data' of non-object in wp-content/plugins/wp-rss-by-publishers/templates/feed-report.php on line 2
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/wp-rss-by-publishers/wsys-redirect-feed-posts.php:28
- > PHP Fatal error
Uncaught Error: Using $this when not in object context in wp-content/plugins/wp-rss-by-publishers/templates/edit-publisher.php:2
- > PHP Notice
User-side errors Passed 1 test
🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
Everything seems fine on the user side
Optimizations
Plugin configuration 87% from 29 tests
readme.txt 88% from 16 tests
The readme.txt file describes your plugin functionality and requirements and it is parsed to prepare the your plugin's listing
Attributes that need to be fixed:
- Screenshots: Please add images for these screenshots: #1 (Publishers list), #2 (Add Publisher), #3 (Add Feed), #4 (Add Rule), #5 (All posts)
- Plugin Name: Please replace "Plugin Name" with the name of your plugin on the first line (
=== wp-rss-by-publishers ===
)
wp-rss-by-publishers/wp-rss-by-publisher.php 85% from 13 tests
The primary PHP file in "WP RSS By Publishers" version 0.1 is used by WordPress to initiate all plugin functionality
You should first fix the following items:
- Main file name: The principal plugin file should be the same as the plugin slug ("wp-rss-by-publishers.php" instead of "wp-rss-by-publisher.php")
- Description: Please don't use more than 140 characters for the plugin description (currently 226 characters long)
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | Executable files are not allowed as they can serve as attack vectors
No dangerous file extensions were detected6,648 lines of code in 39 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 30 | 1,071 | 1,249 | 6,377 |
CSS | 1 | 8 | 14 | 123 |
SQL | 7 | 4 | 0 | 78 |
JavaScript | 1 | 7 | 11 | 70 |
PHP code Passed 2 tests
This is a very shot review of cyclomatic complexity and code structure
This plugin has no cyclomatic complexity issues
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.41 |
Average class complexity | 52.71 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 344.00 |
Average method complexity | 4.96 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 48.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 21 | |
▷ Abstract classes | 0 | 0.00% |
▷ Concrete classes | 21 | 100.00% |
▷ Final classes | 0 | 0.00% |
Methods | 274 | |
▷ Static methods | 37 | 13.50% |
▷ Public methods | 272 | 99.27% |
▷ Protected methods | 2 | 0.73% |
▷ Private methods | 0 | 0.00% |
Functions | 13 | |
▷ Named functions | 13 | 100.00% |
▷ Anonymous functions | 0 | 0.00% |
Constants | 23 | |
▷ Global constants | 2 | 8.70% |
▷ Class constants | 21 | 91.30% |
▷ Public constants | 21 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
PNG files should be compressed to save space and minimize bandwidth usage
5 PNG files occupy 0.29MB with 0.15MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/screenshot-3.png | 81.66KB | 41.36KB | ▼ 49.35% |
assets/screenshot-5.png | 83.32KB | 41.67KB | ▼ 49.99% |
assets/screenshot-1.png | 33.51KB | 14.69KB | ▼ 56.16% |
assets/screenshot-4.png | 38.13KB | 16.72KB | ▼ 56.15% |
assets/screenshot-2.png | 61.79KB | 28.73KB | ▼ 53.50% |