CMS Tree Page View

Adds a tree view of all pages & custom posts. Get a great overview + options to drag & drop to reorder & option to add multiple pages.

v1.7.0Pär ThernströmUpdated Added 50k+ installs98% rating0% support resolved
35
Score
121
Errors
90
Warnings
-3
Change

Category Scores

Security0
Repo90
Performance100
Maintainability81

Issues to Review

Prioritized issue groups from the latest Plugin Check scan

211 findings

Security

165

11 issue groups

Maintainability

23

7 issue groups

I18n

22

4 issue groups

Supply Chain

1

1 issue group

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

Sample message

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

ERRORSecurityOutput is not escapedAll output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"<input $checked type='checkbox' name='post-type-dashboard[]' value='$name' id='post-type-dashboard-$name' /> <label for='post-type-dashboard-$name'>"'.42
Category
Security
Occurrences
42
Severity
error

Sample message

All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"<input $checked type='checkbox' name='post-type-dashboard[]' value='$name' id='post-type-dashboard-$name' /> <label for='post-type-dashboard-$name'>"'.

WARNINGSecurityRequest data is not unslashed$_COOKIE[&quot;jstree_open&quot;] not unslashed before sanitization. Use wp_unslash() or similar25
Category
Security
Occurrences
25
Severity
warning

Sample message

$_COOKIE[&quot;jstree_open&quot;] not unslashed before sanitization. Use wp_unslash() or similar

WARNINGSecurityNonce verification recommendedProcessing form data without nonce verification.15
Category
Security
Occurrences
15
Severity
warning

Sample message

Processing form data without nonce verification.

ERRORI18nMissing Arg DomainMissing $domain parameter in function call to __().13
Category
I18n
Occurrences
13
Severity
error

Sample message

Missing $domain parameter in function call to __().

WARNINGSecurityInput is not validatedDetected usage of a possibly undefined superglobal array index: $_GET[&quot;action&quot;]. Check that the array index exists before using it.12
Category
Security
Occurrences
12
Severity
warning

Sample message

Detected usage of a possibly undefined superglobal array index: $_GET[&quot;action&quot;]. Check that the array index exists before using it.

WARNINGSecurityInput is not sanitizedDetected usage of a non-sanitized input variable: $_COOKIE[&quot;jstree_open&quot;]11
Category
Security
Occurrences
11
Severity
warning

Sample message

Detected usage of a non-sanitized input variable: $_COOKIE[&quot;jstree_open&quot;]

WARNINGMaintainabilityDirect QueryUse of a direct database call is discouraged.7
Category
Maintainability
Occurrences
7
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().7
Category
Maintainability
Occurrences
7
Severity
warning

Sample message

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

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.7
Category
I18n
Occurrences
7
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.

Show 13 more
ERRORSecuritySQL query is not prepared4
Category
Security
Occurrences
4
Severity
error

Sample message

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

WARNINGMaintainabilityNot In Footer4
Category
Maintainability
Occurrences
4
Severity
warning

Sample message

In footer ($in_footer) is not set explicitly wp_enqueue_script; It is recommended to load scripts in the footer. Please set this value to `true` to load it in the footer, or explicitly `false` if it should be loaded in the header.

WARNINGSecurityInterpolated SQL is not prepared3
Category
Security
Occurrences
3
Severity
warning

Sample message

Use placeholders and $wpdb-&gt;prepare(); found interpolated variable $id_placeholders at \t\t WHERE post_parent IN ($id_placeholders)\n

WARNINGMaintainabilityerror log print r2
Category
Maintainability
Occurrences
2
Severity
warning

Sample message

print_r() found. Debug code should not normally be used in production.

WARNINGI18nDiscouraged text-domain loading1
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.

ERRORSecurityDatabase parameter is not escaped1
Category
Security
Occurrences
1
Severity
error

Sample message

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

WARNINGSecurityMissing nonce verification1
Category
Security
Occurrences
1
Severity
warning

Sample message

Processing form data without nonce verification.

WARNINGSecuritywp redirect wp redirect1
Category
Security
Occurrences
1
Severity
warning

Sample message

wp_redirect() found. Using wp_safe_redirect(), along with the &quot;allowed_redirect_hosts&quot; filter if needed, can help avoid any chances of malicious redirects within code. It is also important to remember to call exit() after a redirect so that no other unwanted code is executed.

ERRORI18nDeprecated parameter: load_plugin_textdomain parameter 21
Category
I18n
Occurrences
1
Severity
error

Sample message

The parameter "WP_CONTENT_DIR . "/plugins/languages"" at position #2 of load_plugin_textdomain() has been deprecated since WordPress version 2.7.0. Use "" instead.

WARNINGMaintainabilityMissing Version1
Category
Maintainability
Occurrences
1
Severity
warning

Sample message

Resource version not set in call to wp_enqueue_script(). This means new versions of the script may not always be loaded due to browser caching.

ERRORMaintainabilityapplication detected1
Category
Maintainability
Occurrences
1
Severity
error

Sample message

Application files are not permitted.

ERRORSupply ChainHidden files included1
Category
Supply Chain
Occurrences
1
Severity
error

Sample message

Hidden files are not permitted.

ERRORMaintainabilitylibrary core files1
Category
Maintainability
Occurrences
1
Severity
error

Sample message

Library files that are already in the WordPress core are not permitted.

External Connections

Potential connections found in static code analysis.

8 domains

Outbound calls

20

External assets

0

Incoming endpoints

4

Notable Domains

eskapism.se5 · outbound
abeautifulsite.net2 · outbound
jstree.com1 · outbound
simple-history.com1 · outbound

Platform / Reference Domains

wordpress.org5 · platform/reference
gnu.org2 · platform/reference
opensource.org2 · platform/reference
w3.org2 · platform/reference

External Asset Domains

No external asset domains detected.

Incoming Endpoints

No public endpoints detected.

Admin AJAX endpoints4
wp_ajax_cms_tpv_add_pageauthenticated

wp_ajax

wp_ajax_cms_tpv_add_pagesauthenticated

wp_ajax

wp_ajax_cms_tpv_get_childsauthenticated

wp_ajax

wp_ajax_cms_tpv_move_pageauthenticated

wp_ajax

Score History

2 score snapshots

-3
1007550250Jun 20, 2026, 02:01 AM UTC Score 38/100 Plugin v1.6.8 Plugin Check 2.0.0 135 errors, 104 warningsJun 26, 2026, 05:07 PM UTC Score 35/100 Plugin v1.7.0 Plugin Check 2.0.0 121 errors, 90 warningsJun 20, 2026Jun 26, 2026

v1.7.0

35

Latest

Findings
211
Errors
121
Warnings
90
Check
2.0.0

v1.6.8

38

Score

Findings
239
Errors
135
Warnings
104
Check
2.0.0

Relationship Map

Author, categories, issues, domains, and nearby plugins.

33 nodes

Related Plugins

Essential Content Types

20k+ active installs

100
Hide Drafts in Menus

1k+ active installs

100
Block Navigation

3k+ active installs

99
Essential Widgets

10k+ active installs

99
Post Admin Word Count

3k+ active installs

99