Delete Duplicate Posts

Get rid of duplicate posts and pages (any post type) on your blog with manual or automatic modes.

v5.1Lars KoudalUpdated 2026-06-19Added Sep 2, 200910k+ installs96% rating
47
Score
9
Errors
50
Warnings
+0
Change

Category Scores

Security13
Repo94
Performance100
Maintainability81

Top Issues by Category

Issues Details

59 issues found in latest scan

WARNING11
WordPress.DB.DirectDatabaseQuery.DirectQuery

Use of a direct database call is discouraged.

WARNING10
WordPress.DB.DirectDatabaseQuery.NoCaching

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

WARNING6
WordPress.Security.ValidatedSanitizedInput.InputNotSanitized

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

WARNING4
WordPress.DB.PreparedSQL.InterpolatedNotPrepared

Use placeholders and $wpdb->prepare(); found interpolated variable {$ddp_logtable} at "DELETE FROM {$ddp_logtable} WHERE id NOT IN (\n

WARNING4
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedConstantFound

Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "DDP_PLUGIN_DIR".

WARNING4
WordPress.Security.NonceVerification.Missing

Processing form data without nonce verification.

WARNING3
PluginCheck.Security.DirectDB.UnescapedDBParameter

Unescaped parameter $ddp_logtable used in $wpdb->get_var()\n$ddp_logtable assigned unsafely at line 116.

WARNING3
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound

Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$ddp_deleted_duplicates".

ERROR2
PluginCheck.Security.DirectDB.UnescapedDBParameter

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

WARNING2
WordPress.DB.DirectDatabaseQuery.SchemaChange

Attempting a database schema change is discouraged.

ERROR2
WordPress.DB.PreparedSQL.NotPrepared

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

ERROR2
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.

ERROR2
wp_function_not_compatible_with_requires_wp

Function "determine_locale()" requires WordPress 5.0.0, but your plugin minimum supported version is WordPress 4.7.0.

WARNING1
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound

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

WARNING1
WordPress.Security.ValidatedSanitizedInput.MissingUnslash

$_POST['checked_posts'] not unslashed before sanitization. Use wp_unslash() or similar

WARNING1
missing_composer_json_file

The "/vendor" directory using composer exists, but "composer.json" file is missing.

ERROR1
plugin_header_no_license

Missing "License" in Plugin Header. Please update your Plugin Header with a valid GPLv2 (or later) compatible license.

Latest Snapshot

Findings

59

Errors

9

Warnings

50

Score History

First score snapshot

First scan completed Jun 20, 2026

v5.1 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2

Jun 20, 2026

v5.1

47

Latest

Findings
59
Errors
9
Warnings
50
Plugin Check
2.0.0
Model
2026.06-mvp-static-v2

Related Plugins