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 | Updated | Top Issue |
|---|---|---|---|---|---|---|---|
| #451 | Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization | 29 | 80 | 162 | 200k+ | Nonce verification recommended | |
| #452 | Page View Count | 29 | 108 | 247 | 10k+ | Dynamic hook name | |
| #453 | Security Ninja – WordPress Security & Firewall | 29 | 149 | 347 | 7k+ | Direct Query | |
| #454 | Shiptastic for WooCommerce | 29 | 136 | 630 | 10k+ | Non-prefixed global variable | |
| #455 | Themify Popup | 29 | 232 | 108 | 8k+ | Text Domain Mismatch | |
| #456 | Ultimate Auction for WooCommerce – Excellent WP Auction Plugin | 29 | 52 | 523 | 2k+ | Non-prefixed global variable | |
| #457 | Custom Post Types and Custom Fields creator – WCK | 29 | 1,300 | 143 | 10k+ | Text Domain Mismatch | |
| #458 | Widget for Yelp Reviews | 29 | 147 | 158 | 2k+ | Output is not escaped | |
| #459 | aThemes Starter Sites | 30 | 259 | 195 | 40k+ | Text Domain Mismatch | |
| #460 | Custom Field Template | 30 | 521 | 618 | 30k+ | Nonce verification recommended | |
| #461 | Edwiser Bridge – WordPress Moodle Integration | 30 | 4 | 669 | 4k+ | Non-prefixed hook name | |
| #462 | Formzu WP | 30 | 167 | 163 | 3k+ | Text Domain Mismatch | |
| #463 | Import WooCommerce Suite | 30 | 80 | 434 | 4k+ | Interpolated SQL is not prepared | |
| #464 | Jetpack Protect | 30 | 657 | 217 | 100k+ | Text Domain Mismatch | |
| #465 | Mailrelay | 30 | 318 | 170 | 2k+ | Text Domain Mismatch | |
| #466 | Popularis Extra | 30 | 237 | 141 | 7k+ | Output is not escaped | |
| #467 | QA Assistants – Driven by data | 30 | 4 | 867 | 2k+ | Non-prefixed global variable | |
| #468 | SmartCrawl SEO checker, analyzer & optimizer | 30 | 347 | 1,307 | 20k+ | Non-prefixed global variable | |
| #469 | Themify Portfolio Post | 30 | 214 | 102 | 30k+ | Text Domain Mismatch | |
| #470 | User Access Manager | 30 | 393 | 171 | 10k+ | Output is not escaped | |
| #471 | Widgetize Pages Light | 30 | 145 | 104 | 3k+ | Output is not escaped | |
| #472 | WCPOS – Point of Sale (POS) plugin for WooCommerce | 30 | 77 | 228 | 5k+ | Nonce verification recommended | |
| #473 | WP Event Aggregator: Import Eventbrite events, Meetup events, social events and any iCal Events into Event Calendar | 30 | 113 | 419 | 1k+ | Non-prefixed global variable | |
| #474 | WPS Cleaner | 30 | 430 | 491 | 20k+ | Output is not escaped | |
| #475 | WPZOOM Addons for Beaver Builder | 30 | 2,216 | 152 | 4k+ | Text Domain Mismatch | |
| #476 | Zoho CRM Lead Magnet | 30 | 101 | 1,025 | 3k+ | Request data is not unslashed | |
| #477 | a3 Lazy Load | 31 | 83 | 240 | 90k+ | Dynamic hook name | |
| #478 | AEH Speed Optimization: Browser Cache, Optimized Minify, Lazy Loading & Image Optimization | 31 | 91 | 133 | 2k+ | Output is not escaped | |
| #479 | Advanced Woo Search – Product Search for WooCommerce | 31 | 228 | 377 | 70k+ | Nonce verification recommended | |
| #480 | The SEO Framework – Fast, Automated, Effortless. | 31 | 363 | 609 | 200k+ | Non-prefixed global variable | |
| #481 | Download Plugin | 31 | 78 | 102 | 50k+ | Output is not escaped | |
| #482 | EnvoThemes Demo Import | 31 | 221 | 140 | 3k+ | Output is not escaped | |
| #483 | FastDup – Fastest WordPress Migration & Duplicator | 31 | 83 | 66 | 5k+ | wp function not compatible with requires wp | |
| #484 | Easy HTTPS Redirection (SSL) | 31 | 224 | 100 | 100k+ | Unsafe printing function | |
| #485 | Linguise – AI Automatic Multilingual Translation | 31 | 61 | 280 | 1k+ | Non-prefixed global variable | |
| #486 | MainWP Dashboard: Self-hosted WordPress Management for Agencies | 31 | 95 | 317 | 20k+ | Interpolated SQL is not prepared | |
| #487 | Qode Essential Addons | 31 | 55 | 295 | 10k+ | Non-prefixed global variable | |
| #488 | Query Monitor | 31 | 44 | 273 | 200k+ | Non-prefixed class | |
| #489 | Rank Math SEO – AI SEO Tools to Dominate SEO Rankings | 31 | 45 | 373 | 4m+ | Non-prefixed global variable | |
| #490 | SpeedyCache – Cache, Optimization, Performance | 31 | 65 | 115 | 600k+ | Input is not validated | |
| #491 | Staatic – Static Site Generator for WordPress | 31 | 420 | 195 | 2k+ | SQL query is not prepared | |
| #492 | Project Manager – AI Powered Project Management, Task Management, Kanban Board & Time Tracker | 31 | 63 | 933 | 6k+ | Interpolated SQL is not prepared | |
| #493 | Auto YouTube Importer | 32 | 338 | 173 | 1k+ | Text Domain Mismatch | |
| #494 | Addi – Cuotas que se adaptan a ti | 32 | 106 | 210 | 2k+ | Direct Query | |
| #495 | Child Theme Configurator | 32 | 442 | 267 | 300k+ | Unsafe printing function | |
| #496 | Download Attachments | 32 | 69 | 188 | 8k+ | Non-prefixed hook name | |
| #497 | Freesoul Deactivate Plugins – Disable plugins on individual WordPress pages | 32 | 53 | 773 | 9k+ | Nonce verification recommended | |
| #498 | Insights from Google PageSpeed | 32 | 414 | 475 | 20k+ | Text Domain Mismatch | |
| #499 | Gwolle Guestbook | 32 | 268 | 528 | 20k+ | Output is not escaped | |
| #500 | Jetpack VaultPress Backup | 32 | 554 | 211 | 20k+ | Text Domain Mismatch |