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 |
|---|---|---|---|---|---|---|---|---|
| #3251 | Toggle Content | 81 | 16 | 12 | 700 | file system operations mkdir | ||
| #3252 | Typing Text | 81 | 15 | 16 | 600 | file system operations mkdir | ||
| #3253 | VS Event List | 81 | 1 | 259 | 8k+ | Non-prefixed global variable | ||
| #3254 | ShipStation for WooCommerce | 81 | 34 | 40k+ | Non-prefixed class | |||
| #3255 | Accordion Toggle | 82 | 17 | 11 | 2k+ | Non-prefixed class | ||
| #3256 | Bulk Menu Edit | 82 | 4 | 9 | 700 | Direct Query | ||
| #3257 | ForumWP – Forum & Discussion Board | 82 | 22 | 444 | 800 | Non-prefixed global variable | ||
| #3258 | Head & Footer Code | 82 | 1 | 15 | 100k+ | Non-prefixed constant | ||
| #3259 | Image Gallery Block | 82 | 13 | 10 | 3k+ | wp function not compatible with requires wp | ||
| #3260 | Infobox | 82 | 15 | 12 | 1k+ | file system operations mkdir | ||
| #3261 | Lazy Load for Videos | 82 | 6 | 37 | 9k+ | Non-prefixed constant | ||
| #3262 | MyBookTable Bookstore by Stormhill Media | 82 | 16 | 34 | 1k+ | Direct Query | ||
| #3263 | Parallax Slider Block | 82 | 15 | 12 | 1k+ | file system operations mkdir | ||
| #3264 | Posts and Users Stats | 82 | 183 | 600 | Non-prefixed global variable | |||
| #3265 | Regenerate Thumbnails | 82 | 10 | 9 | 1m+ | Direct Query | ||
| #3266 | Simple Page Ordering | 82 | 11 | 9 | 100k+ | Missing Arg Domain | ||
| #3267 | Image Slider Block | 82 | 13 | 14 | 3k+ | wp function not compatible with requires wp | ||
| #3268 | Testimonial Block | 82 | 13 | 12 | 500 | wp function not compatible with requires wp | ||
| #3269 | WebP Conversion | 82 | 1 | 33 | 3k+ | Non-prefixed global variable | ||
| #3270 | Easy Booking – WooCommerce Booking & Reservation Plugin | 82 | 59 | 66 | 4k+ | Non-prefixed global variable | ||
| #3271 | Check Conflicts | 83 | 36 | 12 | 1k+ | Missing Arg Domain | ||
| #3272 | Export emails | 83 | 8 | 7 | 500 | Direct Query | ||
| #3273 | PDF Generator for WordPress | 83 | 10 | 198 | 1k+ | Non-prefixed global variable | ||
| #3274 | Popup builder with Gamification, Multi-Step Popups, Page-Level Targeting, and WooCommerce Triggers | 83 | 2 | 73 | 60k+ | Direct Query | ||
| #3275 | Fixed Widget and Sticky Elements for WordPress | 83 | 7 | 13 | 80k+ | Non-prefixed global variable | ||
| #3276 | Relevanssi Light | 83 | 3 | 23 | 600 | Direct Query | ||
| #3277 | Lightweight Sidebar Manager | 83 | 13 | 36 | 80k+ | Non-prefixed class | ||
| #3278 | WPC AJAX Search for WooCommerce | 83 | 1 | 29 | 1k+ | Nonce verification recommended | ||
| #3279 | Wbcom Designs – Birthday Widget for BuddyPress | 84 | 163 | 13 | 400 | Text Domain Mismatch | ||
| #3280 | Cachify | 84 | 9 | 36 | 9k+ | Non-prefixed global variable | ||
| #3281 | WP All Import – Import Add-On for ACF | 84 | 3 | 46 | 50k+ | Non-prefixed global variable | ||
| #3282 | FlippingBook | 84 | 14 | 6 | 2k+ | Missing Translators Comment | ||
| #3283 | JWT Authentication for WP REST API | 84 | 27 | 41 | 60k+ | wp function not compatible with requires wp | ||
| #3284 | Public Post Preview Configurator | 84 | 14 | 6 | 10k+ | Non Singular String Literal Domain | ||
| #3285 | Timeline Module for Divi | 84 | 16 | 11 | 3k+ | Text Domain Mismatch | ||
| #3286 | Ultra Addons Lite for Elementor | 84 | 30 | 18 | 700 | wp function not compatible with requires wp | ||
| #3287 | WPC Grouped Product for WooCommerce | 84 | 45 | 3k+ | Nonce verification recommended | |||
| #3288 | Attendance Manager | 85 | 93 | 21 | 800 | date date | ||
| #3289 | Auto Subpage Menu | 85 | 5 | 6 | 800 | Database parameter is not escaped | ||
| #3290 | FormGent – Next-Gen AI Form Builder for WordPress with Multi-Step, Quizzes, Payments & More | 85 | 11 | 315 | 1k+ | Non-prefixed global variable | ||
| #3291 | GazChap's WooCommerce Auto Category Product Thumbnails | 85 | 4 | 8 | 1k+ | trademarked term | ||
| #3292 | HSTS Ready | 85 | 3 | 11 | 3k+ | Input is not validated | ||
| #3293 | Pronamic Google Maps | 85 | 24 | 18 | 1k+ | Non-prefixed global variable | ||
| #3294 | Real Thumbnail Generator: Efficient regeneration of thumbnails in all sizes | 85 | 5 | 58 | 1k+ | Non-prefixed constant | ||
| #3295 | Salt Shaker | 85 | 15 | 13 | 6k+ | Interpolated SQL is not prepared | ||
| #3296 | Save and Continue Link Recovery for Gravity Forms | 85 | 16 | 5 | 400 | Text Domain Mismatch | ||
| #3297 | Vanilla PDF Embed | 85 | 8 | 3 | 3k+ | parse url parse url | ||
| #3298 | Boxtal – Shipping solution | 86 | 3 | 92 | 9k+ | Non-prefixed global variable | ||
| #3299 | Counters Block – Animated Number Counters, Stats & Dynamic KPIs | 86 | 5 | 14 | 3k+ | Missing direct file access protection | ||
| #3300 | Getnet Argentina para WooCommerce | 86 | 14 | 9 | 500 | Text Domain Mismatch |