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 |
|---|---|---|---|---|---|---|---|
| #1701 | YayMail – WooCommerce Email Customizer | 51 | 162 | 762 | 50k+ | Non Prefixed Variable Found | |
| #1702 | Request a Quote for WooCommerce – Get a Quote Button | 52 | 25 | 12 | 6k+ | Output Not Escaped | |
| #1703 | MB Custom Post Types & Custom Taxonomies | 52 | 9 | 49 | 10k+ | Recommended | |
| #1704 | Metronet Tag Manager | 52 | 17 | 36 | 20k+ | Input Not Validated | |
| #1705 | SEOWriting | 52 | 10 | 24 | 30k+ | Missing Unslash | |
| #1706 | Wenprise Pinyin Slug | 52 | 30 | 34 | 4k+ | Text Domain Mismatch | |
| #1707 | Price Based on Country for WooCommerce | 52 | 43 | 126 | 20k+ | Non Prefixed Hookname Found | |
| #1708 | Automattic For Agencies Client | 53 | 249 | 184 | 20k+ | Text Domain Mismatch | |
| #1709 | Connect Contact Form 7 and Mailchimp | 53 | 236 | 52 | 40k+ | Text Domain Mismatch | |
| #1710 | FakerPress | 53 | 66 | 152 | 10k+ | Non Prefixed Variable Found | |
| #1711 | LearnPress – bbPress Integration | 53 | 19 | 14 | 2k+ | Output Not Escaped | |
| #1712 | Multiple Post Thumbnails | 53 | 25 | 18 | 20k+ | Output Not Escaped | |
| #1713 | Pinterest for WooCommerce | 53 | 44 | 30 | 300k+ | Exception Not Escaped | |
| #1714 | Preserved HTML Editor Markup Plus | 53 | 12 | 22 | 3k+ | Output Not Escaped | |
| #1715 | Royal WordPress Backup, Restore & Migration Plugin – Backup WordPress Sites Safely | 53 | 34 | 90 | 20k+ | Unescaped DBParameter | |
| #1716 | Texty – SMS Notification for WordPress, WooCommerce, Dokan and more | 53 | 31 | 34 | 8k+ | Output Not Escaped | |
| #1717 | Cyr-To-Lat | 54 | 16 | 48 | 300k+ | Dynamic Hookname Found | |
| #1718 | Expanding Archives | 54 | 37 | 9 | 3k+ | Output Not Escaped | |
| #1719 | Helpie FAQ — Accordion, Docs & Knowledge Base | 54 | 96 | 89 | 9k+ | Recommended | |
| #1720 | SimplyBook.me – Booking and reservations calendar | 54 | 31 | 13 | 30k+ | Exception Not Escaped | |
| #1721 | WP Call Button – Easy Click to Call Button for WordPress | 54 | 21 | 38 | 40k+ | Non Prefixed Variable Found | |
| #1722 | WP Menu Icons | 54 | 68 | 52 | 20k+ | Text Domain Mismatch | |
| #1723 | Accordions | 55 | 1 | 101 | 20k+ | slow db query meta query | |
| #1724 | Quick Buy Now Button for WooCommerce | 55 | 37 | 39 | 5k+ | Output Not Escaped | |
| #1725 | Enhanced Category Pages | 55 | 23 | 25 | 2k+ | Direct Query | |
| #1726 | Go Live Update Urls | 55 | 11 | 49 | 80k+ | Non Prefixed Hookname Found | |
| #1727 | JetWidgets For Elementor | 55 | 99 | 274 | 10k+ | Non Prefixed Variable Found | |
| #1728 | LoginPress | wp-login Custom Login Page Customizer | 55 | 124 | 301 | 200k+ | Non Prefixed Function Found | |
| #1729 | Fast Page & Post Duplicator | 55 | 12 | 25 | 60k+ | Direct Query | |
| #1730 | Themeflection Numbers – Number Counter and Animated Numbers | 55 | 224 | 73 | 3k+ | Text Domain Mismatch | |
| #1731 | VS Contact Form | 55 | 3 | 318 | 7k+ | Non Prefixed Variable Found | |
| #1732 | VK Block Patterns | 55 | 8 | 61 | 100k+ | Non Prefixed Function Found | |
| #1733 | Booking Calendar | 56 | 16 | 40 | 50k+ | wp function not compatible with requires wp | |
| #1734 | TableKit: Table Builder Blocks for Gutenberg | 56 | 80 | 20 | 2k+ | Missing Translators Comment | |
| #1735 | WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance | 56 | 5 | 769 | 1m+ | Non Prefixed Variable Found | |
| #1736 | Delete Pending Comments | 57 | 16 | 11 | 10k+ | Unsafe Printing Function | |
| #1737 | Internal Link Juicer: SEO Auto Linker for WordPress | 57 | 12 | 61 | 90k+ | Unescaped DBParameter | |
| #1738 | Longer Permalinks | 57 | 27 | 21 | 8k+ | Missing Arg Domain | |
| #1739 | Remove admin menus by role | 57 | 5 | 54 | 8k+ | Input Not Validated | |
| #1740 | Search Exclude | 57 | 73 | 40 | 50k+ | Text Domain Mismatch | |
| #1741 | Ultimate Member – Terms & Conditions | 57 | 19 | 9 | 4k+ | Output Not Escaped | |
| #1742 | Filter Orders by Product for WooCommerce | 57 | 9 | 21 | 4k+ | Recommended | |
| #1743 | Sequential Order Numbers for WooCommerce | 57 | 9 | 24 | 10k+ | Interpolated Not Prepared | |
| #1744 | WP Table Builder – Drag & Drop Table Builder | 57 | 55 | 39 | 50k+ | Not Allowed | |
| #1745 | BCM Duplicate Menu | 58 | 8 | 11 | 4k+ | Recommended | |
| #1746 | Debloat – Remove Unused CSS, Optimize JS | 58 | 24 | 20 | 30k+ | Recommended | |
| #1747 | Error Log Viewer by BestWebSoft | 58 | 433 | 172 | 6k+ | Text Domain Mismatch | |
| #1748 | flowpaper | 58 | 14 | 31 | 10k+ | Non Prefixed Function Found | |
| #1749 | Videopack | 58 | 28 | 108 | 10k+ | Input Not Sanitized | |
| #1750 | View Admin As | 58 | 307 | 135 | 9k+ | Non Singular String Literal Domain |