Benchmarks
Plugin footprint 82% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | It is important to correctly install your plugin, without throwing errors or notices
Installer ran successfully
Server metrics [RAM: ▲0.65MB] [CPU: ▲2.58ms] 75% from 4 tests
Analyzing server-side resources used by Zotpress
It is recommended to improve the following
- CPU: Total CPU usage should be kept under 500.00ms (currently 682.32ms on /wp-admin/admin.php?page=Zotpress)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 4.12 ▲0.66 | 49.05 ▲9.53 |
Dashboard /wp-admin | 3.96 ▲0.61 | 53.81 ▼10.29 |
Posts /wp-admin/edit.php | 4.07 ▲0.71 | 55.77 ▲12.44 |
Add New Post /wp-admin/post-new.php | 6.56 ▲0.67 | 92.12 ▲6.74 |
Media Library /wp-admin/upload.php | 3.89 ▲0.65 | 41.18 ▲4.35 |
Browse /wp-admin/admin.php?page=Zotpress | 4.43 | 682.32 |
Help /wp-admin/admin.php?page=Zotpress&help=true | 3.98 | 43.86 |
Options /wp-admin/admin.php?page=Zotpress&options=true | 3.91 | 42.37 |
Accounts /wp-admin/admin.php?page=Zotpress&accounts=true | 3.92 | 40.68 |
Server storage [IO: ▲2.07MB] [DB: ▲0.00MB] Passed 3 tests
Input-output and database impact of this plugin
This plugin was installed successfully
Filesystem: 100 new files
Database: 4 new tables, 12 new options
New tables |
---|
wp_zotpress_zoteroItemImages |
wp_zotpress |
wp_zotpress_oauth |
wp_zotpress_cache |
New WordPress options |
---|
Zotpress_StyleList |
widget_recent-posts |
db_upgraded |
Zotpress_main_db_version |
widget_recent-comments |
Zotpress_cache_version |
widget_zotpresssidebarwidget |
Zotpress_oauth_db_version |
widget_theysaidso_widget |
Zotpress_zoteroItemImages_db_version |
... |
Browser metrics Passed 4 tests
Zotpress: an overview of browser usage
Normal browser usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,840 ▲94 | 14.72 ▲0.14 | 1.84 ▲0.13 | 44.69 ▲2.79 |
Dashboard /wp-admin | 2,229 ▲51 | 5.54 ▼0.11 | 96.93 ▼27.81 | 76.60 ▲35.39 |
Posts /wp-admin/edit.php | 2,146 ▲43 | 2.01 ▲0.01 | 34.16 ▼1.69 | 34.76 ▲5.73 |
Add New Post /wp-admin/post-new.php | 7,128 ▲5,600 | 26.23 ▲3.15 | 934.15 ▲230.54 | 46.71 ▼16.50 |
Media Library /wp-admin/upload.php | 1,452 ▲52 | 4.21 ▼0.02 | 105.25 ▼7.84 | 44.23 ▼4.93 |
Browse /wp-admin/admin.php?page=Zotpress | 1,071 | 3.25 | 50.66 | 61.92 |
Help /wp-admin/admin.php?page=Zotpress&help=true | 2,468 | 3.63 | 63.95 | 124.31 |
Options /wp-admin/admin.php?page=Zotpress&options=true | 1,357 | 3.27 | 44.01 | 59.87 |
Accounts /wp-admin/admin.php?page=Zotpress&accounts=true | 1,081 | 3.20 | 40.03 | 62.50 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests
🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
The following items require your attention
- Zombie WordPress options were found after uninstall: 7 options
- db_upgraded
- theysaidso_admin_options
- widget_zotpresssidebarwidget
- widget_recent-comments
- can_compress_scripts
- widget_recent-posts
- widget_theysaidso_widget
Smoke tests 50% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | A smoke test targeting server-side errors
Everything seems fine, however this is by no means an exhaustive test
SRP 0% from 2 tests
🔹 Tests weight: 20 | It is important to ensure that your PHP files perform no action when accessed directly, respecting the single-responsibility principle
Please take a closer look at the following
- 3× GET requests to PHP files return non-empty strings:
- > /wp-content/plugins/zotpress/lib/request/request.cite.php
- > /wp-content/plugins/zotpress/lib/admin/admin.accounts.oauth.php
- > /wp-content/plugins/zotpress/lib/request/request.dl.php
- 19× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
- > PHP Warning
Use of undefined constant ZOTPRESS_PLUGIN_URL - assumed 'ZOTPRESS_PLUGIN_URL' (this will throw an Error in a future version of PHP) in wp-content/plugins/zotpress/lib/admin/admin.setup.php on line 9
- > PHP Fatal error
Uncaught Error: Call to undefined function _e() in wp-content/plugins/zotpress/lib/admin/admin.setup.php:15
- > PHP Fatal error
Uncaught Error: Call to undefined function register_activation_hook() in wp-content/plugins/zotpress/lib/admin/admin.install.php:179
- > PHP Fatal error
Uncaught Error: Call to undefined function _e() in wp-content/plugins/zotpress/lib/admin/admin.menu.php:31
- > PHP Fatal error
Uncaught Error: Call to undefined function current_user_can() in wp-content/plugins/zotpress/lib/admin/admin.options.php:4
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/zotpress/lib/shortcode/shortcode.request.php:1056
- > PHP Fatal error
Uncaught Error: Call to undefined function current_user_can() in wp-content/plugins/zotpress/lib/admin/admin.options.form.php:4
- > PHP Fatal error
Uncaught Error: Call to undefined function _e() in wp-content/plugins/zotpress/lib/admin/admin.menu.php:31
- > PHP Fatal error
Uncaught Error: Class 'WP_Widget' not found in wp-content/plugins/zotpress/lib/widget/widget.sidebar.php:6
- > PHP Fatal error
Uncaught Error: Call to a member function get_var() on null in wp-content/plugins/zotpress/lib/widget/widget.metabox.php:11
- > PHP Warning
User-side errors Passed 1 test
🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
There were no browser issues found
Optimizations
Plugin configuration 93% from 29 tests
readme.txt 88% from 16 tests
You should put a lot of thought into formatting readme.txt as it is used by WordPress.org to prepare the public listing of your plugin
Attributes that require attention:
- Screenshots: These screenshots do not have images: #1 (Display items from individual or group Zotero libraries on your WordPress website. Special characters are supported.), #2 (Search for items and generate shortcodes for bibliographies and in-text citations using the "Zotpress Reference" meta box on edit screens.), #3 (Find the shortcode builder in the Gutenberg toolbar. Search for items and create bibliographies and in-text citations.), #4 (Give your citation an image using WordPress's Media Library or Open Library.), #5 (Share your library through your website. Allow visitors to browse by collection or tag.), #6 (Allow visitors to search your library by item metadata or tag, or both.)
- Tags: There are too many tags (26 tag instead of maximum 10)
zotpress/zotpress.php Passed 13 tests
"Zotpress" version 7.3.7's main PHP file describes plugin functionality and also serves as the entry point to any WordPress functionality
65 characters long description:
Bringing Zotero and scholarly blogging to your WordPress website.
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | This is an overview of programming languages used in this plugin; dangerous file extensions are not allowed
Success! There were no dangerous files found in this plugin12,323 lines of code in 65 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 27 | 1,547 | 1,065 | 5,603 |
JavaScript | 26 | 959 | 889 | 3,620 |
CSS | 10 | 352 | 208 | 2,530 |
PO File | 1 | 203 | 271 | 566 |
SVG | 1 | 0 | 0 | 4 |
PHP code Passed 2 tests
An overview of cyclomatic complexity and code structure
Great job! No cyclomatic complexity issues were detected in this plugin
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.51 |
Average class complexity | 76.33 |
▷ Minimum class complexity | 69.00 |
▷ Maximum class complexity | 80.00 |
Average method complexity | 6.51 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 66.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 3 | |
▷ Abstract classes | 0 | 0.00% |
▷ Concrete classes | 3 | 100.00% |
▷ Final classes | 0 | 0.00% |
Methods | 41 | |
▷ Static methods | 0 | 0.00% |
▷ Public methods | 41 | 100.00% |
▷ Protected methods | 0 | 0.00% |
▷ Private methods | 0 | 0.00% |
Functions | 57 | |
▷ Named functions | 57 | 100.00% |
▷ Anonymous functions | 0 | 0.00% |
Constants | 7 | |
▷ Global constants | 7 | 100.00% |
▷ Class constants | 0 | 0.00% |
▷ Public constants | 0 | 0.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Often times overlooked, PNG files can occupy unnecessary space in your plugin
20 PNG files occupy 0.07MB with 0.02MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
images/checkmark-green.png | 0.35KB | 0.20KB | ▼ 41.13% |
css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png | 0.17KB | 0.08KB | ▼ 51.12% |
css/smoothness/images/ui-icons_222222_256x240.png | 4.27KB | 4.11KB | ▼ 3.78% |
css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png | 0.12KB | 0.14KB | 0.00% |
images/icon.png | 0.66KB | 0.50KB | ▼ 23.85% |