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 | Updated | Top Issue |
|---|---|---|---|---|---|---|---|
| #1201 | MAS Companies For WP Job Manager | 33 | 62 | 308 | 1k+ | Non Prefixed Hookname Found | |
| #1202 | Members – Membership & User Role Editor Plugin | 33 | 234 | 244 | 300k+ | Output Not Escaped | |
| #1203 | Mollie Payments for WooCommerce | 33 | 70 | 123 | 100k+ | Dynamic Hookname Found | |
| #1204 | News Announcement Scroll | 33 | 237 | 259 | 2k+ | Non Prefixed Variable Found | |
| #1205 | PhonePe Payment Solutions | 33 | 76 | 105 | 10k+ | missing direct file access protection | |
| #1206 | Pixelgrade Assistant | 33 | 665 | 141 | 2k+ | Text Domain Mismatch | |
| #1207 | Post Lists View Custom | 33 | 462 | 150 | 2k+ | Missing Arg Domain | |
| #1208 | PublishPress Checklists: Pre-Publishing Approval Checklist – Validate Post Requirements | 33 | 140 | 182 | 3k+ | Missing Translators Comment | |
| #1209 | Frisbii Pay | 33 | 91 | 292 | 1k+ | Non Prefixed Variable Found | |
| #1210 | Schema & Structured Data for WP & AMP | 33 | 63 | 246 | 100k+ | Non Prefixed Variable Found | |
| #1211 | SMTP2GO for WordPress – Email Made Easy | 33 | 186 | 111 | 30k+ | Output Not Escaped | |
| #1212 | Social Rocket – Social Sharing Plugin | 33 | 1,016 | 255 | 1k+ | Unsafe Printing Function | |
| #1213 | Spiffy Calendar | 33 | 473 | 243 | 3k+ | Output Not Escaped | |
| #1214 | WP Twitter Auto Publish | 33 | 442 | 171 | 4k+ | Output Not Escaped | |
| #1215 | Variation Swatches for WooCommerce | 33 | 469 | 116 | 50k+ | Text Domain Mismatch | |
| #1216 | Website Monetization by MageNet | 33 | 60 | 87 | 20k+ | Output Not Escaped | |
| #1217 | White Label CMS | 33 | 411 | 207 | 200k+ | Unsafe Printing Function | |
| #1218 | Rich Showcase for Google Reviews | 33 | 230 | 227 | 100k+ | Output Not Escaped | |
| #1219 | Wonder Slider Lite | 33 | 273 | 187 | 8k+ | Output Not Escaped | |
| #1220 | Product Addons for Woocommerce – Product Options with Custom Fields | 33 | 124 | 114 | 30k+ | Output Not Escaped | |
| #1221 | Min Max Control – Min Max Quantity & Step Control for WooCommerce | 33 | 96 | 215 | 10k+ | Non Prefixed Variable Found | |
| #1222 | Hyyan WooCommerce Polylang Integration | 33 | 141 | 220 | 9k+ | Recommended | |
| #1223 | CartBounty – Save and recover abandoned carts for WooCommerce | 33 | 370 | 399 | 10k+ | Output Not Escaped | |
| #1224 | CatalogX – Catalog Mode, Enquiry & Quotes for WooCommerce | 33 | 229 | 105 | 5k+ | Text Domain Mismatch | |
| #1225 | Pay. Payment Methods for WooCommerce | 33 | 316 | 104 | 3k+ | Non Singular String Literal Domain | |
| #1226 | PDF Invoices Italian Add-on for WooCommerce | 33 | 325 | 200 | 5k+ | Non Singular String Literal Domain | |
| #1227 | WOW Slider | 33 | 176 | 101 | 3k+ | Output Not Escaped | |
| #1228 | Books Gallery – Book Showcase, Library & Affiliate Plugin | 33 | 1,753 | 178 | 2k+ | Output Not Escaped | |
| #1229 | WP Edit | 33 | 337 | 137 | 40k+ | Unsafe Printing Function | |
| #1230 | Connector for Gravity Forms and Google Sheets | 33 | 692 | 155 | 3k+ | Text Domain Mismatch | |
| #1231 | WP Multilang – Translation and Multilingual Plugin | 33 | 51 | 118 | 10k+ | Unescaped DBParameter | |
| #1232 | WP-UserOnline | 33 | 111 | 161 | 10k+ | Output Not Escaped | |
| #1233 | XML Sitemaps | 33 | 65 | 62 | 2k+ | Output Not Escaped | |
| #1234 | Advanced Coupons for WooCommerce Coupons & Store Credit | 34 | 74 | 214 | 20k+ | Non Prefixed Variable Found | |
| #1235 | AI WP Writer – SEO content generator, chatGPT, Gemini | 34 | 581 | 509 | 3k+ | Text Domain Mismatch | |
| #1236 | Assistant – Every Day Productivity Apps | 34 | 124 | 97 | 4k+ | Exception Not Escaped | |
| #1237 | Audit Trail | 34 | 90 | 107 | 10k+ | Unsafe Printing Function | |
| #1238 | AyeCode Connect | 34 | 178 | 253 | 10k+ | Recommended | |
| #1239 | BoldGrid Easy SEO – Simple and Effective SEO | 34 | 149 | 104 | 50k+ | Text Domain Mismatch | |
| #1240 | CM Search And Replace – Optimize content edits with a powerful search and replace tool | 34 | 286 | 111 | 2k+ | Output Not Escaped | |
| #1241 | Cornerstone | 34 | 161 | 174 | 30k+ | Recommended | |
| #1242 | CSS JS Manager, Async JavaScript, Defer Render Blocking CSS | 34 | 76 | 106 | 1k+ | Input Not Validated | |
| #1243 | Custom Sidebars – Dynamic Sidebar Classic Widget Area Manager | 34 | 32 | 307 | 100k+ | Non Prefixed Variable Found | |
| #1244 | Datafeedr API | 34 | 307 | 48 | 6k+ | Output Not Escaped | |
| #1245 | Document Library Lite | 34 | 149 | 85 | 4k+ | Text Domain Mismatch | |
| #1246 | Download After Email – Subscribe & Download Form Plugin | 34 | 22 | 356 | 7k+ | Input Not Validated | |
| #1247 | Easy Social Sharing | 34 | 16 | 240 | 1k+ | Non Prefixed Variable Found | |
| #1248 | ECS – Ele Custom Skin for Elementor | 34 | 99 | 205 | 100k+ | Text Domain Mismatch | |
| #1249 | ePayco Plugin for WooCommerce | 34 | 155 | 136 | 3k+ | Text Domain Mismatch | |
| #1250 | Meta for WooCommerce | 34 | 66 | 186 | 400k+ | Non Prefixed Hookname Found |