Squiz.PHP.DiscouragedFunctions.Discouraged
Discouraged PHP function
The plugin uses a PHP or WordPress pattern that coding standards discourage.
Why It Shows Up
Plugin Check found a discouraged function, forbidden function, goto, backtick operator, or similar construct.
Why It Matters
Discouraged patterns are often harder to review, less portable across hosts, or easier to misuse securely.
How to Fix
- Identify why the construct is used and whether WordPress provides a safer API.
- Replace shell execution, dynamic execution, or broad forbidden functions with constrained WordPress APIs.
- If a third-party library triggers the warning, isolate and document it.
References
Affected Plugins
| Rank | Plugin | Score | Errors | Warnings | Installs | Added | Updated | Top Issue |
|---|---|---|---|---|---|---|---|---|
| #701 | Email Subscription Popup — Newsletter & GDPR Consent | 35 | 683 | 193 | 1k+ | Output is not escaped | ||
| #702 | EWWW Image Optimizer | 35 | 225 | 729 | 1m+ | Direct Query | ||
| #703 | Extendify | 35 | 117 | 168 | 500k+ | Non-prefixed global variable | ||
| #704 | External Links Overview | 35 | 57 | 200 | 800 | Non-prefixed global variable | ||
| #705 | FooGallery Migrate | 35 | 41 | 232 | 1k+ | Non-prefixed global variable | ||
| #706 | Force Regenerate Thumbnails | 35 | 12 | 17 | 200k+ | unlink unlink | ||
| #707 | g-FFL Cockpit | 35 | 18 | 224 | 500 | Direct Query | ||
| #708 | Gumlet – Image optimization with Resize, Compression, Lazy load, Caching & CDN delivery | 35 | 53 | 45 | 500 | parse url parse url | ||
| #709 | Heartbeat Control | 35 | 27 | 18 | 80k+ | Missing Arg Domain | ||
| #710 | PDF Compressor & Watermark – iLovePDF | 35 | 216 | 5 | 600 | Text Domain Mismatch | ||
| #711 | ImageMagick Engine | 35 | 63 | 29 | 60k+ | Unsafe printing function | ||
| #712 | Inspiro Starter Sites – 20+ Free Demo Templates for Gutenberg & Elementor | 35 | 6 | 200 | 10k+ | Non-prefixed global variable | ||
| #713 | Social Feed Gallery | 35 | 104 | 52 | 80k+ | Text Domain Mismatch | ||
| #714 | Static Site Exporter | 35 | 54 | 25 | 500 | file system operations mkdir | ||
| #715 | Lead Form Builder & Contact Form | 35 | 400 | 345 | 9k+ | Output is not escaped | ||
| #716 | Less PHP Compiler | 35 | 163 | 47 | 3k+ | Exception output is not escaped | ||
| #717 | LiteSpeed Cache | 35 | 286 | 893 | 7m+ | Non-prefixed global variable | ||
| #718 | AI Product Search for WooCommerce – Motive Commerce Search | 35 | 70 | 82 | 400 | Missing direct file access protection | ||
| #719 | My Eyes Are Up Here | 35 | 7 | 12 | 2k+ | Missing nonce verification | ||
| #720 | Page Optimize | 35 | 70 | 41 | 200k+ | Non Singular String Literal Domain | ||
| #721 | Post Password Token | 35 | 132 | 38 | 600 | Text Domain Mismatch | ||
| #722 | Presto Player | 35 | 37 | 77 | 100k+ | Missing Arg Domain | ||
| #723 | RICG Responsive Images | 35 | 29 | 25 | 2k+ | wp function not compatible with requires wp | ||
| #724 | Simple History – Track, Log, and Audit WordPress Changes | 35 | 32 | 122 | 300k+ | Non-prefixed global variable | ||
| #725 | Social Sharing Plugin – Social Warfare | 35 | 17 | 143 | 20k+ | Non-prefixed class | ||
| #726 | SweepPress: Website Cleanup and Optimization | 35 | 71 | 176 | 600 | Non-prefixed global variable | ||
| #727 | Taxonomy CSV Import Export | 35 | 5 | 30 | 700 | Missing nonce verification | ||
| #728 | Starter Sites & Templates by Neve | 35 | 28 | 88 | 100k+ | Non-prefixed hook name | ||
| #729 | theMarketer – Email marketing, Newsletters, Automation & Loyalty for Woocommerce | 35 | 4 | 47 | 700 | Nonce verification recommended | ||
| #730 | Converter for Media – Optimize images | Convert WebP & AVIF | 35 | 133 | 53 | 500k+ | curl curl setopt | ||
| #731 | ALD – Dropshipping and Fulfillment for AliExpress and WooCommerce | 35 | 50 | 343 | 10k+ | Request data is not unslashed | ||
| #732 | Pixel Manager for WooCommerce – Conversion Tracking, Google Ads, GA4, TikTok, Dynamic Remarketing | 35 | 49 | 230 | 50k+ | Non-prefixed hook name | ||
| #733 | Database Backup for WordPress | 35 | 128 | 88 | 70k+ | Output is not escaped | ||
| #734 | WP PGP Encrypted Emails | 35 | 63 | 39 | 400 | Output is not escaped | ||
| #735 | WPPerformanceTester | 35 | 94 | 44 | 1k+ | Output is not escaped | ||
| #736 | XServer Migrator | 35 | 39 | 53 | 10k+ | Interpolated SQL is not prepared | ||
| #737 | Year Make Model Search for WooCommerce | 35 | 188 | 162 | 1k+ | Output is not escaped | ||
| #738 | Ziina | 35 | 10 | 25 | 2k+ | Input is not sanitized | ||
| #739 | SOOZ – AI for SEO – Bulk Generate Focus Keyphrases, Metadata, Alt Text (SEO Autopilot) | 36 | 4 | 342 | 2k+ | Nonce verification recommended | ||
| #740 | Bard Extra | 36 | 159 | 75 | 700 | Text Domain Mismatch | ||
| #741 | Blaze Demo Importer | 36 | 101 | 94 | 8k+ | Output is not escaped | ||
| #742 | Desktop Mode | 36 | 1 | 579 | 2k+ | Direct Query | ||
| #743 | Google SEO Pressor for Rich snippets | 36 | 51 | 160 | 400 | Missing nonce verification | ||
| #744 | Jetpack VideoPress | 36 | 618 | 224 | 7k+ | Text Domain Mismatch | ||
| #745 | Lara's Google Analytics (GA4) | 36 | 303 | 57 | 9k+ | Unsafe printing function | ||
| #746 | Materialis Companion | 36 | 129 | 67 | 6k+ | Unsafe printing function | ||
| #747 | Plugins Garbage Collector (Database Cleanup) | 36 | 32 | 51 | 10k+ | Missing nonce verification | ||
| #748 | Quick 301 Redirects | 36 | 89 | 120 | 5k+ | Non-prefixed global variable | ||
| #749 | Rara One Click Demo Import | 36 | 122 | 98 | 20k+ | Missing Translators Comment | ||
| #750 | Optimize Database after Deleting Revisions | 36 | 644 | 127 | 60k+ | Output is not escaped |