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 |
|---|---|---|---|---|---|---|---|---|
| #1 | BulletProof Security | 0 | 5,048 | 4,949 | 20k+ | Output is not escaped | ||
| #2 | Live Shopping & Shoppable Videos For WooCommerce | 0 | 79 | 174 | 400 | Non-prefixed global variable | ||
| #3 | Plugin Check (PCP) | 0 | 128 | 140 | 10k+ | Non-prefixed global variable | ||
| #4 | Themify Builder | 9 | 5,334 | 2,171 | 5k+ | Text Domain Mismatch | ||
| #5 | JetBackup – Backup, Restore & Migrate | 10 | 1,567 | 156 | 200k+ | Exception output is not escaped | ||
| #6 | 404 Solution | 15 | 582 | 1,532 | 10k+ | Non-prefixed class | ||
| #7 | Easy WP SMTP – WordPress SMTP and Email Logs: Gmail SMTP, Office 365, Outlook, Custom SMTP, and more | 15 | 45 | 166 | 500k+ | Database parameter is not escaped | ||
| #8 | Visual Composer Website Builder | 16 | 82 | 320 | 40k+ | Non-prefixed global variable | ||
| #9 | MDTF – Meta Data and Taxonomies Filter | 16 | 1,550 | 1,956 | 1k+ | Non-prefixed global variable | ||
| #10 | AnyComment | 17 | 445 | 449 | 5k+ | Output is not escaped | ||
| #11 | RestroPress – Online Food Ordering System | 17 | 534 | 3,207 | 1k+ | Non-prefixed global variable | ||
| #12 | Shopping Cart & eCommerce Store | 17 | 8,038 | 17,464 | 3k+ | Non-prefixed global variable | ||
| #13 | wpForo Forum | 17 | 4,306 | 3,026 | 20k+ | Unsafe printing function | ||
| #14 | WPtouch – Make your WordPress Website Mobile-Friendly | 17 | 1,466 | 325 | 50k+ | Text Domain Mismatch | ||
| #15 | Administrator Z | 18 | 2,061 | 799 | 400 | Output is not escaped | ||
| #16 | JetFormBuilder — Dynamic Blocks Form Builder | 18 | 2,120 | 1,615 | 80k+ | Text Domain Mismatch | ||
| #17 | Property Hive | 18 | 1,957 | 6,027 | 3k+ | Missing nonce verification | ||
| #18 | WPPizza – A Restaurant Plugin | 18 | 4,689 | 2,703 | 1k+ | Text Domain Mismatch | ||
| #19 | Block Slider – Responsive Image Slider, Video Slider & Post Slider | 19 | 555 | 1,291 | 3k+ | Non-prefixed global variable | ||
| #20 | Advanced File Manager – Ultimate File Manager for WordPress And Document Library Solution | 19 | 1,227 | 892 | 100k+ | Exception output is not escaped | ||
| #21 | GiveWP – Donation Plugin and Fundraising Platform | 19 | 3,413 | 3,569 | 100k+ | Output is not escaped | ||
| #22 | Go Fetch Jobs (for WP Job Manager) | 19 | 1,410 | 1,741 | 700 | Non-prefixed global variable | ||
| #23 | Leaflet Maps Marker (Google Maps, OpenStreetMap, Bing Maps) | 19 | 3,275 | 3,228 | 9k+ | Output is not escaped | ||
| #24 | Matomo Analytics – Powerful, Privacy-First Insights for WordPress | 19 | 1,975 | 892 | 100k+ | Exception output is not escaped | ||
| #25 | Netgsm | 19 | 334 | 308 | 1k+ | Setting is missing a sanitization callback | ||
| #26 | Verified Reviews (Avis Vérifiés) | 19 | 671 | 1,136 | 700 | Non-prefixed global variable | ||
| #27 | Really Simple Security – Simple and Performant Security (formerly Really Simple SSL) | 19 | 531 | 378 | 3m+ | Missing Translators Comment | ||
| #28 | Membership Plugin – Kadence Memberships | 19 | 5,085 | 3,003 | 9k+ | Text Domain Mismatch | ||
| #29 | Scrollsequence – Cinematic Scroll Image Animation Plugin | 19 | 878 | 1,528 | 3k+ | Non-prefixed global variable | ||
| #30 | SendPress Newsletters | 19 | 2,293 | 1,422 | 1k+ | Output is not escaped | ||
| #31 | SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments | 19 | 534 | 1,161 | 80k+ | Non-prefixed global variable | ||
| #32 | WP Email Template | 19 | 344 | 345 | 2k+ | Exception output is not escaped | ||
| #33 | WP Import Export Lite | 19 | 737 | 979 | 40k+ | Non-prefixed global variable | ||
| #34 | WP Directory Kit | 19 | 1,502 | 2,641 | 2k+ | Non-prefixed global variable | ||
| #35 | WPOSS阿里云对象存储 | 19 | 269 | 315 | 900 | Non-prefixed namespace | ||
| #36 | AweBooking – Hotel Booking System | 20 | 309 | 514 | 1k+ | Non-prefixed global variable | ||
| #37 | Brizy – Page Builder | 20 | 585 | 726 | 70k+ | Output is not escaped | ||
| #38 | Broadstreet | 20 | 434 | 273 | 800 | Output is not escaped | ||
| #39 | Post Form – Registration Form – Profile Form for User Profiles – Frontend Content Forms for User Submissions (UGC) | 20 | 736 | 2,112 | 900 | Non-prefixed global variable | ||
| #40 | Cost Calculator Builder | 20 | 323 | 766 | 20k+ | Non-prefixed global variable | ||
| #41 | SysBasics Customize My Account for WooCommerce – Live My Account Customizer | 20 | 743 | 911 | 8k+ | Non-prefixed global variable | ||
| #42 | Download Monitor | 20 | 423 | 1,367 | 80k+ | Non-prefixed hook name | ||
| #43 | Ebook Store | 20 | 405 | 1,065 | 700 | Non-prefixed global variable | ||
| #44 | Event Espresso – Event Registration & Ticketing Sales | 20 | 12,698 | 2,135 | 600 | Text Domain Mismatch | ||
| #45 | Event Organiser | 20 | 1,104 | 544 | 20k+ | Text Domain Mismatch | ||
| #46 | EventPrime – Events Calendar, Bookings, Tickets & AI | 20 | 846 | 4,224 | 7k+ | Non-prefixed global variable | ||
| #47 | GoUrl Bitcoin Payment Gateway & Paid Downloads & Membership | 20 | 1,832 | 720 | 700 | Non Singular String Literal Domain | ||
| #48 | MBE eShip | 20 | 527 | 740 | 1k+ | Non-prefixed global variable | ||
| #49 | Brevo – Email, SMS, Web Push, Chat, and more. | 20 | 460 | 646 | 100k+ | Request data is not unslashed | ||
| #50 | MAS Videos | 20 | 519 | 1,693 | 1k+ | Non-prefixed global variable |