Tired of slow, bloated gallery plugins? You've earned a coffee ☺️ Polished, beautiful galleries that are blazing fast.
Category Scores
Top Issues by Category
maintainability144
security89
Issues Details
293 issues found in latest scan
The $domain parameter must be a single text string literal. Found: $this->domain
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "litespeed_control_set_nocache".
Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().
Use placeholders and $wpdb->prepare(); found interpolated variable $collections_table at "SELECT * FROM $collections_table WHERE id = %d"
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
Unescaped parameter $galleries_query used in $wpdb->get_results()\n$galleries_query assigned unsafely at line 1246.
Unescaped parameter $collections_table used in $wpdb->get_row()\n$collections_table assigned unsafely at line 1232.
Use placeholders and $wpdb->prepare(); found $galleries_query
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$gutter'.
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$columns_in_percentage".
Processing form data without nonce verification.
Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "MGL_DOMAIN".
Mismatched text domain. Expected 'meow-gallery' but got 'meowapps'.
error_log() found. Debug code should not normally be used in production.
Processing form data without nonce verification.
mt_rand() is discouraged. Use the far less predictable wp_rand() instead.
date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead.
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.
Short PHP opening tag used with echo; expected "<?php echo wp_kses ..." but found "<?= wp_kses ..."
Replacement variables found, but no valid placeholders found in the query.
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "$filter".
trigger_error() found. Debug code should not normally be used in production.
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '__'.
$_GET['page'] not unslashed before sanitization. Use wp_unslash() or similar
| Code | Type | Message | Count |
|---|---|---|---|
| WordPress.DB.DirectDatabaseQuery.DirectQuery | WARNING | Use of a direct database call is discouraged. | 33 |
| WordPress.WP.I18n.NonSingularStringLiteralDomain | ERROR | The $domain parameter must be a single text string literal. Found: $this->domain | 33 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound | WARNING | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "litespeed_control_set_nocache". | 30 |
| WordPress.DB.DirectDatabaseQuery.NoCaching | WARNING | Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete(). | 29 |
| WordPress.DB.PreparedSQL.InterpolatedNotPrepared | WARNING | Use placeholders and $wpdb->prepare(); found interpolated variable $collections_table at "SELECT * FROM $collections_table WHERE id = %d" | 25 |
| missing_direct_file_access_protection | ERROR | PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit; | 16 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | ERROR | Unescaped parameter $galleries_query used in $wpdb->get_results()\n$galleries_query assigned unsafely at line 1246. | 12 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | WARNING | Unescaped parameter $collections_table used in $wpdb->get_row()\n$collections_table assigned unsafely at line 1232. | 11 |
| WordPress.DB.PreparedSQL.NotPrepared | ERROR | Use placeholders and $wpdb->prepare(); found $galleries_query | 10 |
| WordPress.Security.EscapeOutput.OutputNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$gutter'. | 10 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound | WARNING | Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$columns_in_percentage". | 9 |
| WordPress.Security.NonceVerification.Recommended | WARNING | Processing form data without nonce verification. | 9 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedConstantFound | WARNING | Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "MGL_DOMAIN". | 7 |
| WordPress.WP.I18n.TextDomainMismatch | ERROR | Mismatched text domain. Expected 'meow-gallery' but got 'meowapps'. | 7 |
| WordPress.PHP.DevelopmentFunctions.error_log_error_log | WARNING | error_log() found. Debug code should not normally be used in production. | 6 |
| WordPress.Security.NonceVerification.Missing | WARNING | Processing form data without nonce verification. | 6 |
| WordPress.WP.AlternativeFunctions.rand_mt_rand | ERROR | mt_rand() is discouraged. Use the far less predictable wp_rand() instead. | 5 |
| WordPress.DateTime.RestrictedFunctions.date_date | ERROR | date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead. | 3 |
| WordPress.WP.I18n.MissingTranslatorsComment | ERROR | 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. | 3 |
| Generic.PHP.DisallowShortOpenTag.EchoFound | ERROR | Short PHP opening tag used with echo; expected "<?php echo wp_kses ..." but found "<?= wp_kses ..." | 2 |
| WordPress.DB.PreparedSQLPlaceholders.UnfinishedPrepare | WARNING | Replacement variables found, but no valid placeholders found in the query. | 2 |
| WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound | WARNING | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "$filter". | 2 |
| WordPress.PHP.DevelopmentFunctions.error_log_trigger_error | WARNING | trigger_error() found. Debug code should not normally be used in production. | 2 |
| WordPress.Security.EscapeOutput.ExceptionNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '__'. | 2 |
| WordPress.Security.ValidatedSanitizedInput.MissingUnslash | WARNING | $_GET['page'] not unslashed before sanitization. Use wp_unslash() or similar | 2 |
Latest Snapshot
Findings
293
Errors
111
Warnings
182
Score History
First score snapshot
First scan completed Jun 20, 2026
v5.5.0 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2
Jun 20, 2026
v5.5.0
30
Latest
- Findings
- 293
- Errors
- 111
- Warnings
- 182
- Plugin Check
- 2.0.0
- Model
- 2026.06-mvp-static-v2
| Scan | Score | Findings | Errors | Warnings | Plugin | Plugin Check | Model |
|---|---|---|---|---|---|---|---|
| Jun 20, 2026Latest | 30 | 293 | 111 | 182 | v5.5.0 | 2.0.0 | 2026.06-mvp-static-v2 |