Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | The install procedure must perform silently
The plugin installed gracefully, with no errors
Server metrics [RAM: ▼1.16MB] [CPU: ▼45.61ms] Passed 4 tests
A check of server-side resources used by Job Listings
Normal server usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 2.66 ▼0.80 | 8.02 ▼32.79 |
Dashboard /wp-admin | 2.90 ▼0.40 | 16.43 ▼33.87 |
Posts /wp-admin/edit.php | 2.91 ▼0.45 | 14.40 ▼38.91 |
Add New Post /wp-admin/post-new.php | 2.91 ▼2.98 | 13.69 ▼76.86 |
Media Library /wp-admin/upload.php | 2.91 ▼0.32 | 11.74 ▼23.02 |
Custom Fields /wp-admin/admin.php?page=jlt-custom-field-setting | 2.91 | 15.01 |
Quick Setup /wp-admin/admin.php?page=jlt-basic-setup | 2.91 | 13.26 |
Add New Application /wp-admin/post-new.php?post_type=application | 2.91 | 14.56 |
Settings /wp-admin/admin.php?page=jlt-setting | 2.91 | 13.31 |
Job Tag /wp-admin/edit-tags.php?taxonomy=job_tag&post_type=job | 2.91 | 16.06 |
Job Type /wp-admin/edit-tags.php?taxonomy=job_type&post_type=job | 2.91 | 12.34 |
Job Category /wp-admin/edit-tags.php?taxonomy=job_category&post_type=job | 2.91 | 13.76 |
All Jobs /wp-admin/edit.php?post_type=job | 2.91 | 14.53 |
Companies /wp-admin/edit.php?post_type=company | 2.91 | 14.38 |
Addons /wp-admin/admin.php?page=job-listings-addons | 2.91 | 15.77 |
Server storage [IO: ▲3.45MB] [DB: ▲0.01MB] Passed 3 tests
How much does this plugin use your filesystem and database?
There were no storage issued detected upon installing this plugin
Filesystem: 417 new files
Database: no new tables, 8 new options
New WordPress options |
---|
widget_recent-comments |
can_compress_scripts |
db_upgraded |
jlt_job_insert_default_data |
theysaidso_admin_options |
widget_recent-posts |
widget_theysaidso_widget |
jlt_job_cron_jobs |
Browser metrics Passed 4 tests
An overview of browser requirements for Job Listings
Minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,148 ▲413 | 15.32 ▲1.03 | 36.46 ▲34.55 | 40.35 ▼8.30 |
Dashboard /wp-admin | 2,371 ▲183 | 5.09 ▲0.18 | 113.61 ▼3.57 | 46.77 ▲3.11 |
Posts /wp-admin/edit.php | 2,282 ▲196 | 2.45 ▲0.44 | 44.26 ▲7.25 | 36.05 ▲1.24 |
Add New Post /wp-admin/post-new.php | 1,651 ▲118 | 17.52 ▼5.84 | 612.57 ▼86.26 | 47.57 ▼6.47 |
Media Library /wp-admin/upload.php | 1,561 ▲173 | 4.35 ▲0.13 | 99.69 ▼8.39 | 44.35 ▼0.70 |
Custom Fields /wp-admin/admin.php?page=jlt-custom-field-setting | 1,619 | 2.42 | 44.74 | 34.49 |
Quick Setup /wp-admin/admin.php?page=jlt-basic-setup | 1,006 | 2.05 | 29.68 | 28.32 |
Add New Application /wp-admin/post-new.php?post_type=application | 2,247 | 6.71 | 162.93 | 72.20 |
Settings /wp-admin/admin.php?page=jlt-setting | 1,085 | 2.13 | 33.89 | 28.01 |
Job Tag /wp-admin/edit-tags.php?taxonomy=job_tag&post_type=job | 1,411 | 2.30 | 32.01 | 31.40 |
Job Type /wp-admin/edit-tags.php?taxonomy=job_type&post_type=job | 1,580 | 2.39 | 47.47 | 29.97 |
Job Category /wp-admin/edit-tags.php?taxonomy=job_category&post_type=job | 1,439 | 2.32 | 32.27 | 30.19 |
All Jobs /wp-admin/edit.php?post_type=job | 1,374 | 2.60 | 39.43 | 31.32 |
Companies /wp-admin/edit.php?post_type=company | 1,281 | 2.74 | 38.14 | 29.50 |
Addons /wp-admin/admin.php?page=job-listings-addons | 1,211 | 1.93 | 27.93 | 36.58 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.01MB] 50% from 4 tests
🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
Please fix the following items
- Uninstall procedure had uncaught errors
- > Deprecated in wp-content/plugins/job-listings/includes/job/job_type.php+26
Unparenthesized `a ? b : c ? d : e` is deprecated. Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)`
- Zombie WordPress options were found after uninstall: 8 options
- widget_theysaidso_widget
- widget_recent-posts
- can_compress_scripts
- jlt_job_cron_jobs
- db_upgraded
- widget_recent-comments
- theysaidso_admin_options
- jlt_job_insert_default_data
Smoke tests 25% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the server (in the Apache logs)
Almost there, just fix the following server-side errors
- 12 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=job-listings-addons
- > Deprecated in wp-content/plugins/job-listings/includes/job/job_type.php+26
Unparenthesized `a ? b : c ? d : e` is deprecated. Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)`
- 10 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=job-listings-addons
- > Notice in wp-content/plugins/job-listings/includes/admin/setup-install.php+140
Trying to access array offset on value of type bool
- 4 occurences, only the last one shown
- > GET request to /wp-admin/edit.php?post_type=company
- > Warning in wp-includes/class-wp-hook.php+310
Parameter 2 to JLT_Company::search_by_title_only() expected to be a reference, value given
- 6 occurences, only the last one shown
- > GET request to /wp-admin/post-new.php?post_type=application
- > Deprecated in wp-content/plugins/job-listings/includes/libs/meta-boxes/class-helper.php+175
Function create_function() is deprecated
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
Please fix the following
- 2× GET requests to PHP files return non-empty strings:
- > /wp-content/plugins/job-listings/templates/form/lost-password.php
- > /wp-content/plugins/job-listings/templates/form_field/image.php
- 86× GET requests to PHP files trigger server-side errors or Error 500 responses (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/job-listings/includes/forms/class-jlt-form-job-hander.php:18
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_attr() in wp-content/plugins/job-listings/templates/form_field/textarea.php:1
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_attr() in wp-content/plugins/job-listings/templates/form_field/select.php:5
- > PHP Fatal error
Uncaught Error: Call to undefined function add_filter() in wp-content/plugins/job-listings/includes/email/setting_templates.php:13
- > PHP Fatal error
Uncaught Error: Call to undefined function do_action() in wp-content/plugins/job-listings/templates/member/update-password.php:1
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/job-listings/includes/libs/meta-boxes/testimonial-meta-box.php:34
- > PHP Fatal error
Uncaught Error: Call to undefined function add_filter() in wp-content/plugins/job-listings/includes/member/candidate-default-fields.php:126
- > PHP Fatal error
Uncaught Error: Call to undefined function add_filter() in wp-content/plugins/job-listings/includes/common/google-map/location.php:12
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_attr() in wp-content/plugins/job-listings/templates/form_field/datepicker_search.php:2
- > PHP Fatal error
Uncaught Error: Call to undefined function add_filter() in wp-content/plugins/job-listings/includes/job/job-query.php:168
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | A shallow check that no browser errors were triggered
No browser errors were detected
Optimizations
Plugin configuration 96% from 29 tests
readme.txt Passed 16 tests
The readme.txt file is important because it is parsed by WordPress.org for the public listing of your plugin
5 plugin tags: job board, job manager, employment, job listings, job management
job-listings/job-listings.php 92% from 13 tests
The primary PHP file in "Job Listings" version 0.1.1 is used by WordPress to initiate all plugin functionality
You should first fix the following items:
- Text Domain: The text domain is optional since WordPress version 4.6; if you do specify it, it must be the same as the plugin slug
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | There should be no dangerous file extensions present in any WordPress plugin
There were no executable files found in this plugin40,335 lines of code in 360 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 182 | 3,720 | 2,428 | 17,432 |
JavaScript | 151 | 1,960 | 2,371 | 12,990 |
CSS | 24 | 720 | 341 | 5,989 |
SVG | 1 | 0 | 0 | 2,671 |
Sass | 1 | 95 | 11 | 1,252 |
JSON | 1 | 0 | 0 | 1 |
PHP code Passed 2 tests
This is a very shot review of cyclomatic complexity and code structure
All good! No complexity issues found
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.43 |
Average class complexity | 38.33 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 137.00 |
Average method complexity | 4.35 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 46.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 27 | |
▷ Abstract classes | 0 | 0.00% |
▷ Concrete classes | 27 | 100.00% |
▷ Final classes | 0 | 0.00% |
Methods | 301 | |
▷ Static methods | 95 | 31.56% |
▷ Public methods | 278 | 92.36% |
▷ Protected methods | 3 | 1.00% |
▷ Private methods | 20 | 6.64% |
Functions | 460 | |
▷ Named functions | 460 | 100.00% |
▷ Anonymous functions | 0 | 0.00% |
Constants | 11 | |
▷ Global constants | 7 | 63.64% |
▷ Class constants | 4 | 36.36% |
▷ Public constants | 4 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Using a strong compression for your PNG files is a great way to speed-up your plugin
39 PNG files occupy 0.22MB with 0.09MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
admin/css/images/ui-bg_glass_100_fdf5ce_1x400.png | 0.34KB | 0.16KB | ▼ 54.02% |
public/vendor/chosen/docsupport/oss-credit.png | 4.30KB | 3.26KB | ▼ 24.02% |
public/css/chosen-sprite.png | 0.63KB | 0.88KB | 0.00% |
public/images/map-marker-icon.png | 1.83KB | 1.33KB | ▼ 27.67% |
public/vendor/nivo-lightbox/themes/default/close@2x.png | 3.02KB | 0.34KB | ▼ 88.83% |