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 |
|---|---|---|---|---|---|---|---|---|
| #401 | Ocean Extra | 23 | 1,494 | 2,107 | 500k+ | Non-prefixed global variable | ||
| #402 | Issues and Series for Newspapers, Magazines, Publishers, Writers | 23 | 346 | 710 | 2k+ | Nonce verification recommended | ||
| #403 | Patchstack – WordPress & Plugins Security | 23 | 107 | 489 | 50k+ | Missing nonce verification | ||
| #404 | PayPal Brasil para WooCommerce | 23 | 554 | 328 | 1k+ | Unsafe printing function | ||
| #405 | Photo Gallery by 10Web – Mobile-Friendly Image Gallery | 23 | 4,159 | 1,553 | 100k+ | Output is not escaped | ||
| #406 | Gallery PhotoBlocks | 23 | 904 | 1,345 | 3k+ | Non-prefixed global variable | ||
| #407 | ExpressTechSoftwares Discord Add-on for Paid Memberships Pro | 23 | 454 | 449 | 700 | Text Domain Mismatch | ||
| #408 | AI Popup | 23 | 1,224 | 636 | 400 | Text Domain Mismatch | ||
| #409 | Post to Google My Business (Google Business Profile) | 23 | 845 | 1,452 | 10k+ | Non-prefixed global variable | ||
| #410 | Postie | 23 | 408 | 259 | 10k+ | Output is not escaped | ||
| #411 | PowerPress Podcasting plugin by Blubrry | 23 | 4,807 | 2,394 | 20k+ | Output is not escaped | ||
| #412 | Pricing Table by Supsystic | 23 | 1,299 | 447 | 10k+ | Non Singular String Literal Domain | ||
| #413 | Primary Addon for Elementor | 23 | 765 | 1,306 | 7k+ | Non-prefixed global variable | ||
| #414 | Print Anywhere & Create PDFs of Order Receipts, Invoices, Labels & More. | 23 | 1,485 | 444 | 1k+ | Text Domain Mismatch | ||
| #415 | Print My Blog – Print, PDF, & eBook Converter WordPress Plugin | 23 | 1,077 | 1,660 | 8k+ | Non-prefixed global variable | ||
| #416 | Product Watermark for WooCommerce | 23 | 696 | 457 | 2k+ | Output is not escaped | ||
| #417 | Protect Admin | 23 | 606 | 1,300 | 2k+ | Non-prefixed global variable | ||
| #418 | Radio Station by netmix® – Manage and play your Show Schedule in WordPress! | 23 | 934 | 3,619 | 1k+ | Non-prefixed global variable | ||
| #419 | Read More Without Refresh | 23 | 955 | 1,347 | 20k+ | Non-prefixed global variable | ||
| #420 | Read More WP | 23 | 570 | 1,311 | 1k+ | Non-prefixed global variable | ||
| #421 | Real 3D Flipbook – 3D FlipBook, PDF FlipBook, PDF Viewer, PDF Embedder | 23 | 908 | 1,377 | 10k+ | Non-prefixed global variable | ||
| #422 | Redirection | 23 | 523 | 457 | 100k+ | Non-prefixed global variable | ||
| #423 | Request a Quote – Quote Forms for Any WordPress Site | 23 | 240 | 1,099 | 900 | Non-prefixed hook name | ||
| #424 | Restaurant & Cafe Addon for Elementor | 23 | 889 | 1,326 | 1k+ | Non-prefixed global variable | ||
| #425 | Revive.so – Bulk Rewrite and Republish Blog Posts | 23 | 332 | 228 | 700 | Text Domain Mismatch | ||
| #426 | Robo Gallery – Photo & Image Slider | 23 | 1,291 | 530 | 40k+ | Output is not escaped | ||
| #427 | Schema | 23 | 1,173 | 245 | 40k+ | Text Domain Mismatch | ||
| #428 | SecuPress with Simple SSL – Simple and Performant Security | 23 | 1,697 | 1,601 | 40k+ | Non-prefixed global variable | ||
| #429 | Secure Custom Fields | 23 | 240 | 1,370 | 80k+ | Non-prefixed function | ||
| #430 | SEO Redirection Plugin – 301 Redirect Manager | 23 | 272 | 727 | 10k+ | Non-prefixed global variable | ||
| #431 | Seraphinite Post .DOCX Source | 23 | 1,156 | 110 | 900 | Output is not escaped | ||
| #432 | Seriously Simple Podcasting | 23 | 548 | 627 | 30k+ | Non-prefixed hook name | ||
| #433 | Local Google Analytics for WordPress – caches external requests | 23 | 551 | 199 | 3k+ | Output is not escaped | ||
| #434 | Tag, Category, and Taxonomy Manager – Autotagger Automatically Add Terms | 23 | 405 | 869 | 50k+ | Nonce verification recommended | ||
| #435 | Simple URLs – Link Cloaking, Product Displays, and Affiliate Link Management | 23 | 295 | 298 | 4k+ | Non-prefixed global variable | ||
| #436 | Image Optimizer, Resizer and CDN – Sirv | 23 | 616 | 1,004 | 1k+ | Output is not escaped | ||
| #437 | Site Reviews | 23 | 1,626 | 604 | 60k+ | Output is not escaped | ||
| #438 | Slider Hero with Video Background, Animation | 23 | 1,565 | 1,253 | 3k+ | Text Domain Mismatch | ||
| #439 | Slider by 10Web – Responsive Image Slider | 23 | 5,814 | 976 | 10k+ | Output is not escaped | ||
| #440 | Smart Marketing SMS and Newsletters Forms | 23 | 2,232 | 1,015 | 1k+ | Text Domain Mismatch | ||
| #441 | Smart Slider 3 | 23 | 261 | 268 | 800k+ | Non-prefixed global variable | ||
| #442 | SportsPress – Sports Club & League Manager | 23 | 459 | 2,246 | 10k+ | Non-prefixed global variable | ||
| #443 | StreamWeasels Twitch Integration | 23 | 555 | 1,465 | 1k+ | Non-prefixed global variable | ||
| #444 | Strong Testimonials | 23 | 194 | 393 | 90k+ | Nonce verification recommended | ||
| #445 | Super Video player – Fully Customizable Video Player with Playlist | 23 | 1,135 | 1,634 | 2k+ | Non-prefixed global variable | ||
| #446 | teachPress | 23 | 744 | 1,587 | 2k+ | SQL query is not prepared | ||
| #447 | Legal Terms and Conditions Popup for User Login and WooCommerce Checkout | 23 | 524 | 237 | 700 | Output is not escaped | ||
| #448 | The Events Calendar | 23 | 3,509 | 3,850 | 700k+ | Text Domain Mismatch | ||
| #449 | The Post Grid – Shortcode, Gutenberg Blocks and Elementor Addon for Post Grid | 23 | 105 | 1,013 | 100k+ | Non-prefixed global variable | ||
| #450 | ThemeHunk Customizer | 23 | 3,968 | 582 | 6k+ | Text Domain Mismatch |