WPS Menu Exporter lets you export only your WordPress menus via the WordPress Export page.
Category Scores
Top Issues by Category
security46
maintainability19
repo_compliance3
Issues Details
69 issues found in latest scan
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"\t<wp:term><wp:term_id>{$menu->term_id}</wp:term_id><wp:term_taxonomy>nav_menu</wp:term_taxonomy><wp:term_slug>{$menu->slug}</wp:term_slug>"'.
Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().
Processing form data without nonce verification.
The plugin name includes a restricted term. Your chosen plugin name - "WPS Menu Exporter" - contains the restricted term "wp" which cannot be used at all in your plugin name.
Use placeholders and $wpdb->prepare(); found interpolated variable $where at "SELECT * FROM {$wpdb->posts} $where"
date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead.
All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'.
Unescaped parameter $where used in $wpdb->get_results()\n$where assigned unsafely at line 253.
rand() is discouraged. Use the far less predictable wp_rand() instead.
seems_utf8() has been deprecated since WordPress version 6.9.0. Use wp_is_valid_utf8() instead.
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
Tested up to: 6.8 < 7.0. The "Tested up to" value in your plugin is not set to the current version of WordPress. This means your plugin will not show up in searches, as we require plugins to be compatible and documented as tested up to the most recent version of WordPress.
The "Domain Path" header in the plugin file must start with forward slash.
One or more tags were ignored. Please limit your plugin to 5 tags.
Function "utf8_encode()" requires WordPress 6.9.0, but your plugin minimum supported version is WordPress 4.2.0.
| Code | Type | Message | Count |
|---|---|---|---|
| WordPress.Security.EscapeOutput.OutputNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"\t<wp:term><wp:term_id>{$menu->term_id}</wp:term_id><wp:term_taxonomy>nav_menu</wp:term_taxonomy><wp:term_slug>{$menu->slug}</wp:term_slug>"'. | 38 |
| WordPress.DB.DirectDatabaseQuery.DirectQuery | WARNING | Use of a direct database call is discouraged. | 5 |
| WordPress.DB.DirectDatabaseQuery.NoCaching | WARNING | Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete(). | 5 |
| WordPress.Security.NonceVerification.Recommended | WARNING | Processing form data without nonce verification. | 3 |
| trademarked_term | WARNING | The plugin name includes a restricted term. Your chosen plugin name - "WPS Menu Exporter" - contains the restricted term "wp" which cannot be used at all in your plugin name. | 3 |
| WordPress.DB.PreparedSQL.InterpolatedNotPrepared | WARNING | Use placeholders and $wpdb->prepare(); found interpolated variable $where at "SELECT * FROM {$wpdb->posts} $where" | 2 |
| 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. | 2 |
| WordPress.Security.EscapeOutput.UnsafePrintingFunction | ERROR | All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'. | 2 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | WARNING | Unescaped parameter $where used in $wpdb->get_results()\n$where assigned unsafely at line 253. | 1 |
| WordPress.WP.AlternativeFunctions.rand_rand | ERROR | rand() is discouraged. Use the far less predictable wp_rand() instead. | 1 |
| WordPress.WP.DeprecatedFunctions.seems_utf8Found | WARNING | seems_utf8() has been deprecated since WordPress version 6.9.0. Use wp_is_valid_utf8() instead. | 1 |
| WordPress.WP.I18n.MissingArgDomain | ERROR | Missing $domain parameter in function call to __(). | 1 |
| missing_direct_file_access_protection | ERROR | PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit; | 1 |
| outdated_tested_upto_header | ERROR | Tested up to: 6.8 < 7.0. The "Tested up to" value in your plugin is not set to the current version of WordPress. This means your plugin will not show up in searches, as we require plugins to be compatible and documented as tested up to the most recent version of WordPress. | 1 |
| plugin_header_invalid_domain_path | WARNING | The "Domain Path" header in the plugin file must start with forward slash. | 1 |
| readme_parser_warnings_too_many_tags | WARNING | One or more tags were ignored. Please limit your plugin to 5 tags. | 1 |
| wp_function_not_compatible_with_requires_wp | ERROR | Function "utf8_encode()" requires WordPress 6.9.0, but your plugin minimum supported version is WordPress 4.2.0. | 1 |
Latest Snapshot
Findings
69
Errors
47
Warnings
22
Score History
First score snapshot
First scan completed Jun 20, 2026
v1.3.7.2 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2
Jun 20, 2026
v1.3.7.2
40
Latest
- Findings
- 69
- Errors
- 47
- Warnings
- 22
- Plugin Check
- 2.0.0
- Model
- 2026.06-mvp-static-v2
| Scan | Score | Findings | Errors | Warnings | Plugin | Plugin Check | Model |
|---|---|---|---|---|---|---|---|
| Jun 20, 2026Latest | 40 | 69 | 47 | 22 | v1.3.7.2 | 2.0.0 | 2026.06-mvp-static-v2 |