Media Deduper

Save disk space and bring some order to the chaos of your media library by removing and preventing duplicate files.

v1.5.9cornershopUpdated 2025-12-03Added Oct 27, 20159k+ installs76% rating
36
Score
60
Errors
99
Warnings
+0
Change

Category Scores

Security0
Repo89
Performance98
Maintainability65

Top Issues by Category

security69
maintainability57
i18n30
performance1

Issues Details

159 issues found in latest scan

ERROR28
WordPress.WP.I18n.MissingArgDomain

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

WARNING20
WordPress.Security.NonceVerification.Recommended

Processing form data without nonce verification.

ERROR10
WordPress.Security.EscapeOutput.OutputNotEscaped

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

WARNING10
WordPress.Security.ValidatedSanitizedInput.MissingUnslash

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

WARNING9
WordPress.Security.ValidatedSanitizedInput.InputNotSanitized

Detected usage of a non-sanitized input variable: $_GET['mdd_cbur_nonce']

WARNING8
WordPress.DB.DirectDatabaseQuery.DirectQuery

Use of a direct database call is discouraged.

WARNING8
WordPress.DB.DirectDatabaseQuery.NoCaching

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

WARNING8
WordPress.Security.ValidatedSanitizedInput.InputNotValidated

Detected usage of a possibly undefined superglobal array index: $_GET['key']. Check that the array index exists before using it.

WARNING7
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound

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

WARNING6
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound

Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "MDD_Admin_Notice".

WARNING6
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound

Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "is_mdd_admin".

ERROR6
missing_direct_file_access_protection

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

ERROR5
WordPress.DB.PreparedSQL.NotPrepared

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

WARNING4
WordPress.DB.SlowDBQuery.slow_db_query_meta_key

Detected usage of meta_key, possible slow query.

WARNING4
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound

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

WARNING3
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedConstantFound

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

ERROR3
wp_function_not_compatible_with_requires_wp

Function "wp_add_inline_script()" requires WordPress 4.5.0, but your plugin minimum supported version is WordPress 4.3.0.

ERROR2
PluginCheck.Security.DirectDB.UnescapedDBParameter

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

WARNING2
WordPress.DB.SlowDBQuery.slow_db_query_meta_value

Detected usage of meta_value, possible slow query.

WARNING2
WordPress.Security.SafeRedirect.wp_redirect_wp_redirect

wp_redirect() found. Using wp_safe_redirect(), along with the "allowed_redirect_hosts" 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.

ERROR2
WordPress.WP.I18n.MissingTranslatorsComment

A function call to esc_html__() 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.

ERROR1
PluginCheck.CodeAnalysis.SettingSanitization.register_settingMissing

Sanitization missing for register_setting().

ERROR1
WordPress.Security.EscapeOutput.UnsafePrintingFunction

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

WARNING1
WordPress.Security.NonceVerification.Missing

Processing form data without nonce verification.

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.

Latest Snapshot

Findings

159

Errors

60

Warnings

99

Score History

First score snapshot

First scan completed Jun 20, 2026

v1.5.9 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2

Jun 20, 2026

v1.5.9

36

Latest

Findings
159
Errors
60
Warnings
99
Plugin Check
2.0.0
Model
2026.06-mvp-static-v2

Related Plugins