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 |
|---|---|---|---|---|---|---|---|
| #1751 | Combo Offers WooCommerce | 39 | 38 | 89 | 2k+ | Missing | |
| #1752 | Eurobank WooCommerce Payment Gateway | 39 | 62 | 63 | 2k+ | Non Singular String Literal Domain | |
| #1753 | WPC Product Bundles for WooCommerce | 39 | 33 | 141 | 30k+ | Missing Unslash | |
| #1754 | Wallet for WooCommerce | 39 | 36 | 503 | 20k+ | Non Prefixed Hookname Found | |
| #1755 | WooCommerce Product Dependencies | 39 | 44 | 60 | 3k+ | Missing | |
| #1756 | WP Accessibility | 39 | 199 | 104 | 60k+ | Unsafe Printing Function | |
| #1757 | WP Attachments | 39 | 49 | 44 | 3k+ | Output Not Escaped | |
| #1758 | WPEPP – Essential Security, Password Protect & Login Page Customizer | 39 | 34 | 29 | 3k+ | Unsupported Identifier Placeholder | |
| #1759 | WP Limit Login Attempts | 39 | 26 | 67 | 10k+ | Direct Query | |
| #1760 | WP Most Popular | 39 | 50 | 35 | 2k+ | Output Not Escaped | |
| #1761 | WP Server Health Stats | 39 | 66 | 31 | 10k+ | Output Not Escaped | |
| #1762 | Categories to Tags Converter | 39 | 86 | 38 | 50k+ | Output Not Escaped | |
| #1763 | WPS Limit Login | 39 | 152 | 76 | 100k+ | Output Not Escaped | |
| #1764 | YITH Custom Login | 39 | 86 | 33 | 6k+ | Output Not Escaped | |
| #1765 | Zotpress | 39 | 80 | 403 | 2k+ | Non Prefixed Variable Found | |
| #1766 | ACF Theme Code for Advanced Custom Fields | 40 | 478 | 40 | 10k+ | Output Not Escaped | |
| #1767 | Admin Search | 40 | 31 | 47 | 1k+ | Output Not Escaped | |
| #1768 | Advanced Country Blocker | 40 | 23 | 77 | 2k+ | Exception Not Escaped | |
| #1769 | Advanced IP Blocker | 40 | 94 | 44 | 2k+ | Exception Not Escaped | |
| #1770 | AJAX Thumbnail Rebuild | 40 | 38 | 14 | 30k+ | Unsafe Printing Function | |
| #1771 | All-in-One WP Migration and Backup | 40 | 28 | 61 | 5m+ | Missing | |
| #1772 | Allow Multiple Accounts | 40 | 115 | 19 | 9k+ | Non Singular String Literal Domain | |
| #1773 | Alt Magic: AI Image Alt Text Generator for WP & Image Rename | 40 | 55 | 118 | 1k+ | Direct Query | |
| #1774 | Attachment Importer | 40 | 24 | 76 | 3k+ | Input Not Sanitized | |
| #1775 | Auto Focus Keyword for SEO | 40 | 12 | 39 | 2k+ | Input Not Validated | |
| #1776 | Autocomplete Google Address | 40 | 22 | 67 | 2k+ | Recommended | |
| #1777 | AutoConvert Greeklish Permalinks | 40 | 116 | 13 | 30k+ | Text Domain Mismatch | |
| #1778 | AxiaChat AI – Free AI Chatbot (Answers Customers Automatically) | 40 | 2 | 135 | 2k+ | Interpolated Not Prepared | |
| #1779 | Better Internal Link Search | 40 | 23 | 48 | 1k+ | strip tags strip tags | |
| #1780 | Broken Link Notifier | 40 | 11 | 193 | 1k+ | Non Prefixed Variable Found | |
| #1781 | Bulk Delete Comments | 40 | 16 | 61 | 5k+ | Direct Query | |
| #1782 | Bulk Move | 40 | 85 | 44 | 9k+ | Unsafe Printing Function | |
| #1783 | Database Addon for Contact Form 7 – CFDB7 | 40 | 35 | 56 | 600k+ | Recommended | |
| #1784 | Country State City Dropdown CF7 | 40 | 35 | 54 | 5k+ | Direct Query | |
| #1785 | Coupon Generator for WooCommerce | 40 | 39 | 28 | 10k+ | Unsafe Printing Function | |
| #1786 | Cron Logger | 40 | 49 | 36 | 1k+ | Output Not Escaped | |
| #1787 | Delete Me | 40 | 116 | 17 | 7k+ | Output Not Escaped | |
| #1788 | Easy Image Collage | 40 | 96 | 18 | 4k+ | Unsafe Printing Function | |
| #1789 | ElementsKit Elementor Addons – Advanced Widgets & Templates Addons for Elementor | 40 | 72 | 348 | 1m+ | Non Prefixed Variable Found | |
| #1790 | Eventer | 40 | 61 | 55 | 1k+ | Output Not Escaped | |
| #1791 | FameTheme Demo Importer | 40 | 8 | 74 | 30k+ | Recommended | |
| #1792 | Flamingo | 40 | 15 | 228 | 800k+ | Recommended | |
| #1793 | Product Enquiry for WooCommerce | 40 | 57 | 41 | 3k+ | Output Not Escaped | |
| #1794 | Hostinger Reach – AI-Powered Email Marketing for WordPress | 40 | 9 | 46 | 1m+ | Direct Query | |
| #1795 | Image Alt Text | 40 | 79 | 97 | 9k+ | Non Singular String Literal Domain | |
| #1796 | Internal Linking of Related Contents | 40 | 714 | 47 | 1k+ | Output Not Escaped | |
| #1797 | JSM Show Post Metadata | 40 | 15 | 66 | 10k+ | Recommended | |
| #1798 | JSM Show User Metadata | 40 | 14 | 64 | 3k+ | Recommended | |
| #1799 | La Sentinelle antispam | 40 | 88 | 46 | 3k+ | Output Not Escaped | |
| #1800 | Logbook | 40 | 33 | 59 | 2k+ | Recommended |