Pixel Gallery Addons for Elementor – Easy Grid, Creative Gallery, Drag and Drop Grid, Custom Grid Layout, Portfolio Gallery

Pixel Gallery is an Elementor gallery plugin for creating responsive image and portfolio grids with customizable layouts and effects.

v2.1.11bdthemesUpdated Added 5k+ installs96% rating100% support resolved
28
Score
143
Errors
258
Warnings
+0
Change

Category Scores

Security0
Repo72
Performance76
Maintainability49

Top Issues by Category

security136
i18n88
maintainability81
performance80
supply_chain8

Issues Details

401 issues found in latest scan

WARNING77
WordPressVIPMinimum.Performance.WPQueryParams.PostNotIn_exclude

Using exclusionary parameters, like exclude, 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.

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

WARNING46
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound

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

WARNING38
WordPress.Security.ValidatedSanitizedInput.MissingUnslash

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

ERROR29
WordPress.Security.EscapeOutput.OutputNotEscaped

All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"<div class='pg-option-item {$class} {$widget_used_status}' {$data_type}>"'.

ERROR27
WordPress.WP.I18n.UnorderedPlaceholdersText

Multiple placeholders in translatable strings should be ordered. Expected "%1$1s, %2$2s", but got "%1s, %2s" in 'Enter your clip path value, if you don\'t understand clip path so please %1s look here %2s'.

WARNING20
WordPress.Security.NonceVerification.Recommended

Processing form data without nonce verification.

WARNING20
WordPress.Security.ValidatedSanitizedInput.InputNotSanitized

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

WARNING11
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound

Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: &quot;_is_elementor_installed&quot;.

WARNING11
WordPress.Security.NonceVerification.Missing

Processing form data without nonce verification.

WARNING8
WordPress.Security.ValidatedSanitizedInput.InputNotValidated

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

ERROR8
compressed_files

Compressed files are not permitted.

ERROR8
missing_direct_file_access_protection

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

WARNING6
WordPress.PHP.DevelopmentFunctions.prevent_path_disclosure_error_reporting

error_reporting() can lead to full path disclosure.

ERROR5
WordPress.WP.I18n.NonSingularStringLiteralDomain

The $domain parameter must be a single text string literal. Found: $this->settings['text_domain']

WARNING4
WordPress.Security.SafeRedirect.wp_redirect_wp_redirect

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.

WARNING3
PluginCheck.Security.DirectDB.UnescapedDBParameter

Unescaped parameter $table_cat used in $wpdb-&gt;query()\n$table_cat assigned unsafely at line 239.

ERROR3
WordPress.DB.PreparedSQL.NotPrepared

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

WARNING3
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: &quot;bdthemes_pixel_gallery/init&quot;.

WARNING3
WordPress.WP.EnqueuedResourceParameters.NotInFooter

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.

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

ERROR2
WordPress.WP.AlternativeFunctions.parse_url_parse_url

parse_url() is discouraged because of inconsistency in the output across PHP versions; use wp_parse_url() instead.

ERROR2
WordPress.WP.AlternativeFunctions.unlink_unlink

unlink() is discouraged. Use wp_delete_file() to delete a file.

ERROR2
WordPress.WP.I18n.NonSingularStringLiteralText

The $text parameter must be a single text string literal. Found: 'View ' . $args['name'] . ' Video Tutorial'

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.

Latest Snapshot

Findings

401

Errors

143

Warnings

258

Score History

First score snapshot

First scan completed

v2.1.11 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2

v2.1.11

28

Latest

Findings
401
Errors
143
Warnings
258
Plugin Check
2.0.0
Model
2026.06-mvp-static-v2

Related Plugins