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 |
|---|---|---|---|---|---|---|---|---|
| #851 | Taxonomy Switcher | 47 | 23 | 36 | 2k+ | Nonce verification recommended | ||
| #852 | iControlWP | 47 | 45 | 59 | 1k+ | Missing direct file access protection | ||
| #853 | QuadLayers TikTok Feed | 47 | 78 | 52 | 7k+ | Text Domain Mismatch | ||
| #854 | Compress, Resize & Lazy Load Images – WPvivid Image Optimization | 47 | 107 | 58 | 10k+ | Missing direct file access protection | ||
| #855 | XML Sitemap & Google News | 47 | 270 | 224 | 100k+ | Non-prefixed global variable | ||
| #856 | Ansar Import – One Click Starter Sites – for Elementor & Themes | 48 | 27 | 116 | 10k+ | Non-prefixed global variable | ||
| #857 | Jetpack Social | 48 | 829 | 254 | 30k+ | Text Domain Mismatch | ||
| #858 | MWW Disclaimer Buttons | 48 | 21 | 16 | 400 | Output is not escaped | ||
| #859 | External Links | 48 | 42 | 13 | 9k+ | Output is not escaped | ||
| #860 | WS Action Scheduler Cleaner | 48 | 13 | 80 | 2k+ | error log error log | ||
| #861 | Download Media Library | 49 | 22 | 40 | 1k+ | Text Domain Mismatch | ||
| #862 | FooSales – Point of Sale (POS) for WooCommerce | 49 | 92 | 190 | 700 | Non-prefixed global variable | ||
| #863 | Anti-Spam Protection – No API Key, GDPR Friendly | 49 | 2 | 106 | 1k+ | Direct Query | ||
| #864 | Ecommerce Fabrick | 49 | 4 | 135 | 1k+ | Nonce verification recommended | ||
| #865 | SKT Themes Demo Import | 49 | 218 | 104 | 4k+ | Text Domain Mismatch | ||
| #866 | Songkick Concerts and Festivals | 49 | 9 | 48 | 500 | Input is not sanitized | ||
| #867 | SpinupWP | 49 | 43 | 38 | 30k+ | Non-prefixed function | ||
| #868 | Page Builder Gutenberg Blocks – CoBlocks | 50 | 167 | 36 | 300k+ | block api version too low | ||
| #869 | File Manager | 50 | 42 | 72 | 10k+ | Missing direct file access protection | ||
| #870 | IMGspider – 图片采集抓取插件 | 50 | 12 | 49 | 2k+ | Missing nonce verification | ||
| #871 | PostmagThemes Demo Import | 50 | 191 | 114 | 1k+ | Text Domain Mismatch | ||
| #872 | Send Emails with Mandrill | 50 | 36 | 141 | 6k+ | Non-prefixed global variable | ||
| #873 | Theme Demo Import | 50 | 101 | 95 | 5k+ | Non-prefixed hook name | ||
| #874 | User Activity Tracking and Log | 50 | 30 | 259 | 3k+ | Non-prefixed global variable | ||
| #875 | StoryChief | 51 | 12 | 55 | 1k+ | Input is not sanitized | ||
| #876 | Trustpilot Reviews | 51 | 14 | 52 | 30k+ | Missing nonce verification | ||
| #877 | Hangul font nanumgothic – google | 52 | 35 | 16 | 1k+ | Output is not escaped | ||
| #878 | SEOWriting | 52 | 10 | 24 | 30k+ | Output is not escaped | ||
| #879 | Automattic For Agencies Client | 53 | 249 | 184 | 20k+ | Text Domain Mismatch | ||
| #880 | Column Shortcodes | 53 | 32 | 9 | 60k+ | Unsafe printing function | ||
| #881 | Royal WordPress Backup, Restore & Migration Plugin – Backup WordPress Sites Safely | 53 | 34 | 90 | 20k+ | Database parameter is not escaped | ||
| #882 | aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder | 54 | 8 | 382 | 2k+ | Non-prefixed global variable | ||
| #883 | WP Menu Icons | 54 | 68 | 52 | 20k+ | Text Domain Mismatch | ||
| #884 | Go Live Update Urls | 55 | 11 | 49 | 80k+ | Non-prefixed hook name | ||
| #885 | Holded integration | 55 | 72 | 23 | 2k+ | Non Singular String Literal Domain | ||
| #886 | Popup Maker – Boost Sales, Conversions, Optins, Subscribers with the Ultimate WP Popup Builder | 55 | 54 | 692 | 700k+ | Non-prefixed hook name | ||
| #887 | AI Copilot – ChatGPT Chatbot & AI Engine for Post Automation | 56 | 65 | 20 | 1k+ | Text Domain Mismatch | ||
| #888 | easy AMP | 56 | 10 | 24 | 600 | Input is not sanitized | ||
| #889 | Social Chat – Click To Chat App Button | 56 | 81 | 45 | 200k+ | Text Domain Mismatch | ||
| #890 | Blog Time | 57 | 38 | 6 | 600 | Output is not escaped | ||
| #891 | Pantheon Migrations | 57 | 15 | 26 | 1k+ | Output is not escaped | ||
| #892 | MC4WP: Mailchimp for WordPress | 57 | 238 | 1m+ | Non-prefixed global variable | |||
| #893 | Search Exclude | 57 | 73 | 40 | 50k+ | Text Domain Mismatch | ||
| #894 | Vibe AI – MCP Server for WordPress. Connect Claude, ChatGPT & Cursor | 57 | 11 | 51 | 2k+ | Interpolated SQL is not prepared | ||
| #895 | PDF invoice for WP ERP | 58 | 96 | 134 | 2k+ | Non-prefixed global variable | ||
| #896 | Co-Authors Plus | 59 | 2 | 76 | 20k+ | Input is not sanitized | ||
| #897 | flowpaper | 59 | 13 | 31 | 10k+ | Non-prefixed function | ||
| #898 | Post Blocks & Tools | 60 | 9 | 46 | 400 | Missing nonce verification | ||
| #899 | DreamHost Automated Migration | 62 | 15 | 23 | 20k+ | Output is not escaped | ||
| #900 | Migrate To Liquid Web & Nexcess | 62 | 15 | 23 | 2k+ | Output is not escaped |