WordPress.DB.DirectDatabaseQuery.NoCaching
No Caching
The plugin runs a direct database query instead of using a higher-level WordPress API or cache-aware pattern.
Why It Shows Up
Plugin Check found `$wpdb` access that queries the database directly, changes schema, or bypasses normal caching expectations.
Why It Matters
Direct queries can be correct, but they are easier to make unsafe, slower at scale, and harder for WordPress to cache or filter.
How to Fix
- Use WordPress APIs such as post, term, metadata, option, or user functions when they fit the task.
- If direct SQL is necessary, prepare dynamic values and add a clear caching strategy for repeated reads.
- Keep schema changes in activation or upgrade routines and make them idempotent.
References
Affected Plugins
| Rank | Plugin | Score | Errors | Warnings | Installs | Added | Updated | Top Issue |
|---|---|---|---|---|---|---|---|---|
| #201 | Simple Newsletter Plugin – Noptin | 22 | 73 | 599 | 10k+ | Non-prefixed global variable | ||
| #202 | Newsletters | 22 | 2,977 | 2,261 | 2k+ | Text Domain Mismatch | ||
| #203 | NinjaFirewall (WP Edition) – Advanced Security Plugin and Firewall | 22 | 1,263 | 2,046 | 100k+ | Non-prefixed global variable | ||
| #204 | NinjaScanner – Virus & Malware scan | 22 | 596 | 551 | 30k+ | Non-prefixed global variable | ||
| #205 | WP OAuth Server (OAuth Authentication) | 22 | 189 | 347 | 3k+ | Non-prefixed function | ||
| #206 | oik | 22 | 489 | 180 | 2k+ | Non Singular String Literal Domain | ||
| #207 | PagBank / PagSeguro Connect para WooCommerce | 22 | 505 | 757 | 4k+ | Non-prefixed global variable | ||
| #208 | PAYCOMET for WooCommerce | 22 | 1,223 | 423 | 2k+ | Text Domain Mismatch | ||
| #209 | PDF Builder for WPForms | 22 | 321 | 266 | 900 | SQL query is not prepared | ||
| #210 | Smart Popup by Supsystic | 22 | 3,028 | 439 | 10k+ | Non Singular String Literal Domain | ||
| #211 | Post SMTP – Complete Email Deliverability and SMTP Solution with Email Logs, Alerts, Backup SMTP & Mobile App | 22 | 1,581 | 2,326 | 300k+ | Non-prefixed global variable | ||
| #212 | Premium Addons for Elementor – Elementor Templates, Widgets & MCP Tools | 22 | 205 | 1,140 | 700k+ | Non-prefixed hook name | ||
| #213 | Product Catalog Feed by PixelYourSite | 22 | 581 | 357 | 8k+ | Output is not escaped | ||
| #214 | PageSpeed Ninja – Cache, Minify, Defer CSS JavaScript, Critical CSS, Optimize Images, Convert WebP | 22 | 984 | 407 | 5k+ | Unsafe printing function | ||
| #215 | RealPress – Real Estate Plugin | 22 | 604 | 1,167 | 400 | Non-prefixed global variable | ||
| #216 | Restrict User Access – Ultimate Membership & Content Protection | 22 | 977 | 1,840 | 10k+ | Non-prefixed global variable | ||
| #217 | Salon Booking System – Appointment Booking for Salons, Barbershops & Spas | 22 | 186 | 760 | 2k+ | Non-prefixed global variable | ||
| #218 | Social Sharing Plugin – Sassy Social Share | 22 | 1,689 | 233 | 100k+ | wp function not compatible with requires wp | ||
| #219 | Sellsy | 22 | 586 | 490 | 400 | Non Singular String Literal Domain | ||
| #220 | Seraphinite Accelerator | 22 | 595 | 255 | 50k+ | Output is not escaped | ||
| #221 | ShortPixel Image Optimizer – Optimize Images, Convert WebP & AVIF | 22 | 1,044 | 800 | 300k+ | Non-prefixed global variable | ||
| #222 | Simple Job Board | 22 | 634 | 1,355 | 10k+ | Non-prefixed global variable | ||
| #223 | Slick Popup: Contact Form 7 Popup Plugin | 22 | 2,322 | 316 | 1k+ | Text Domain Mismatch | ||
| #224 | Slim Jetpack | 22 | 2,586 | 1,947 | 2k+ | Text Domain Mismatch | ||
| #225 | SNS Count Cache | 22 | 918 | 120 | 7k+ | Non Singular String Literal Domain | ||
| #226 | NextScripts: Social Networks Auto-Poster | 22 | 2,408 | 1,133 | 20k+ | Output is not escaped | ||
| #227 | SSL Zen — SSL Certificate Installer & HTTPS Redirects | 22 | 751 | 1,605 | 10k+ | Non-prefixed global variable | ||
| #228 | Swift Performance Lite | 22 | 2,346 | 1,325 | 6k+ | Text Domain Mismatch | ||
| #229 | Tablesome Table – Contact Form DB – WPForms, CF7, Gravity, Forminator, Fluent | 22 | 225 | 519 | 8k+ | error log error log | ||
| #230 | Ultimate Carousel For Divi | 22 | 590 | 1,566 | 800 | Non-prefixed global variable | ||
| #231 | Ultimeter | 22 | 751 | 1,344 | 1k+ | Non-prefixed global variable | ||
| #232 | Uncanny Toolkit for LearnDash | 22 | 539 | 994 | 20k+ | Output is not escaped | ||
| #233 | Unlimited Elements Blocks Library | 22 | 708 | 1,822 | 400 | Non-prefixed global variable | ||
| #234 | RapidLoad AI – Optimize Web Vitals Automatically | 22 | 81 | 840 | 700 | Nonce verification recommended | ||
| #235 | Search & Replace Everything – Quick and Easy Way to Find and Replace Text, Links | 22 | 1,042 | 1,808 | 20k+ | Non-prefixed global variable | ||
| #236 | UpStream: a Project Management Plugin for WordPress | 22 | 683 | 703 | 600 | Non-prefixed global variable | ||
| #237 | Welcart e-Commerce | 22 | 10,368 | 10,882 | 10k+ | Text Domain Mismatch | ||
| #238 | Walker Core | 22 | 1,351 | 1,436 | 800 | Non-prefixed global variable | ||
| #239 | WCFM – Frontend Manager for WooCommerce | 22 | 4,731 | 5,057 | 20k+ | Non-prefixed global variable | ||
| #240 | WCFM Marketplace – Multivendor Marketplace for WooCommerce | 22 | 1,950 | 2,108 | 10k+ | Non-prefixed global variable | ||
| #241 | WCFM Membership – WooCommerce Memberships for Multivendor Marketplace | 22 | 559 | 675 | 10k+ | Non-prefixed global variable | ||
| #242 | Easy Appointment Booking & Scheduling System – Webba Booking Calendar | 22 | 1,617 | 3,380 | 2k+ | Non-prefixed global variable | ||
| #243 | Wenprise WeChatPay Payment Gateway For WooCommerce | 22 | 443 | 178 | 400 | Exception output is not escaped | ||
| #244 | Fraud Prevention For WooCommerce and EDD | 22 | 572 | 1,394 | 5k+ | Non-prefixed global variable | ||
| #245 | WooCommerce | 22 | 1,343 | 6,210 | 7m+ | Non-prefixed global variable | ||
| #246 | Advanced AJAX Product Filters | 22 | 2,840 | 1,252 | 50k+ | Text Domain Mismatch | ||
| #247 | CoDesigner – All in One Elementor WooCommerce Builder | 22 | 4,131 | 774 | 5k+ | Text Domain Mismatch | ||
| #248 | Simple Shopping Cart | 22 | 800 | 541 | 10k+ | Unsafe printing function | ||
| #249 | WP Affiliate Disclosure | 22 | 1,358 | 1,504 | 1k+ | Non-prefixed global variable | ||
| #250 | Asset CleanUp: Page Speed Booster | 22 | 2,030 | 2,485 | 100k+ | Non-prefixed global variable |