Post Duplicator

Creates functionality to duplicate any and all post types, including taxonomies & custom fields. Perfect for developers and content creators.

v3.0.15metaphorcreationsUpdated 2026-05-14Added Apr 28, 2012200k+ installs96% rating
60
Score
33
Errors
24
Warnings
+0
Change

Category Scores

Security37
Repo94
Performance98
Maintainability77

Top Issues by Category

Issues Details

57 issues found in latest scan

ERROR12
missing_direct_file_access_protection

PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;

WARNING8
WordPress.Security.NonceVerification.Recommended

Processing form data without nonce verification.

ERROR7
WordPress.Security.EscapeOutput.OutputNotEscaped

All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$notice['type']'.

ERROR6
WordPress.WP.I18n.MissingTranslatorsComment

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.

ERROR4
WordPress.DateTime.RestrictedFunctions.date_date

date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead.

WARNING3
WordPress.DB.DirectDatabaseQuery.DirectQuery

Use of a direct database call is discouraged.

WARNING3
WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "$this->get_id() . '/init_fields'".

WARNING3
WordPress.Security.ValidatedSanitizedInput.MissingUnslash

$_GET['post_status'] not unslashed before sanitization. Use wp_unslash() or similar

WARNING2
WordPress.DB.DirectDatabaseQuery.NoCaching

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

WARNING2
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "wpml_post_language_details".

ERROR2
WordPress.WP.I18n.NonSingularStringLiteralDomain

The $domain parameter must be a single text string literal. Found: self::$instance->textdomain

WARNING1
PluginCheck.CodeAnalysis.DiscouragedFunctions.load_plugin_textdomainFound

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.

WARNING1
WordPress.Security.ValidatedSanitizedInput.InputNotSanitized

Detected usage of a non-sanitized input variable: $_POST['nonce']

ERROR1
WordPress.WP.AlternativeFunctions.strip_tags_strip_tags

strip_tags() is discouraged. Use the more comprehensive wp_strip_all_tags() instead.

WARNING1
WordPressVIPMinimum.Performance.WPQueryParams.PostNotIn_post__not_in

Using exclusionary parameters, like post__not_in, in calls to get_posts() should be done with caution, see https://wpvip.com/documentation/performance-improvements-by-removing-usage-of-post__not_in/ for more information.

ERROR1
outdated_tested_upto_header

Tested up to: 6.9 < 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.

Latest Snapshot

Findings

57

Errors

33

Warnings

24

Score History

First score snapshot

First scan completed Jun 19, 2026

v3.0.15 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2

Jun 19, 2026

v3.0.15

60

Latest

Findings
57
Errors
33
Warnings
24
Plugin Check
2.0.0
Model
2026.06-mvp-static-v2

Related Plugins