WordPress.DB.DirectDatabaseQuery.DirectQuery

Direct Query

The plugin runs a direct database query instead of using a higher-level WordPress API or cache-aware pattern.

medium weight

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.

Affected Plugins

RankPluginScoreErrorsWarningsInstallsAddedUpdatedTop Issue
#301Announcement & Notification Banner – Bulletin239301,5762k+Non-prefixed global variable
#302Business Directory Plugin – Easy Listing Directories for WordPress236111,06310k+Non-prefixed global variable
#303Grid & Styler For Contact Form 7 And Divi235481,341500Non-prefixed global variable
#304All In One Login — Login Page Security and Customization for WordPress with Google reCAPTCHA, Social Login, Temporary Login, 2FA, and more.237501,35960k+Non-prefixed global variable
#305WPBot – AI ChatBot for Live Support, Lead Generation, AI Services234881,1615k+Non-prefixed global variable
#306Classified Listing – AI-Powered Classified ads & Business Directory231552,0749k+Non-prefixed global variable
#307CLUEVO LMS, E-Learning Platform231,8431,176400Text Domain Mismatch
#308Content Aware Sidebars – Fastest Widget Area Plugin239931,73830k+Non-prefixed global variable
#309Content Egg – Affiliate Product Importer & Price Comparison231,2451,27510k+Non-prefixed global variable
#310Content Views – Post Grid & Filter, Recent Posts, Category Posts … (Shortcode, Gutenberg Blocks, and Widgets for Elementor)23306587100k+Dynamic hook name
#311Contest Gallery – Upload & Vote Photos, Media, Sell with PayPal & Stripe239,31526,6441k+Non-prefixed global variable
#312Free Theme Builder for Elementor – CRT Addons (Header, Footer, Archive, WooCommerce & 50+ Widgets)237912,331400Non-prefixed global variable
#313CWW Companion233072231k+Output is not escaped
#314Auto Post Cleaner237151,3781k+Non-prefixed global variable
#315Disable Bloat for WordPress & WooCommerce238631,32510k+Non-prefixed global variable
#316DK PDF – WordPress PDF Generator237443353k+Exception output is not escaped
#317Dokan: AI Powered WooCommerce Multivendor Marketplace Solution – Build Your Own Amazon, eBay, Etsy2317082140k+Non-prefixed global variable
#318Easy Age Verify231,1382,6311k+Non-prefixed global variable
#319Easy Digital Downloads – eCommerce Payments and Subscriptions made easy233,72310,28340k+Non-prefixed namespace
#320Marijuana Age Verify231,1542,6301k+Non-prefixed global variable
#321EazyDocs – AI Powered Knowledge Base, Wiki, Documentation & FAQ Builder233551,5412k+Non-prefixed global variable
#322Ecwid by Lightspeed Ecommerce Shopping Cart2333930720k+Missing direct file access protection
#323ElementsReady Addons for Elementor232316663k+Non-prefixed global variable
#324ERP: Complete HR, Accounting & CRM Suite Built for WooCommerce238285,9685k+Direct Query
#325Error Log Monitor236941,41420k+Non-prefixed global variable
#326Essential Real Estate235295,0608k+Non-prefixed global variable
#327EventON – Events Calendar232,5851,0216k+Text Domain Mismatch
#328Events Addon for Elementor237791,3397k+Non-prefixed global variable
#329Everest Forms – Contact Form, Payment Form, Quiz, Survey & Custom Form Builder with AI233951,34290k+Non-prefixed global variable
#330Spreadsheet Price Changer for WooCommerce and WP E-commerce – Light23386999400Non-prefixed global variable
#331Ezoic2343251610k+Output is not escaped
#332Featured Images in RSS for Mailchimp & More237801,29920k+Non-prefixed global variable
#333Feed Them Social – Social Media Feeds, Video, and Photo Galleries2356353520k+Output is not escaped
#334Filr – Secure document library237751,317700Non-prefixed global variable
#335Finpose – Accounting for WooCommerce231,6491,307400Non-prefixed global variable
#336Image Photo Gallery Final Tiles Grid235781,50220k+Non-prefixed global variable
#337Five-Star Ratings Shortcode236041,317600Non-prefixed global variable
#338Flexmls® IDX Plugin231,2689571k+Output is not escaped
#339Form Maker by 10Web – Mobile-Friendly Drag & Drop Contact Form Builder234,7461,27930k+Non Singular String Literal Domain
#340Freshdesk (official)23194386900Non-prefixed function
#341Front End PM239782,2645k+Non-prefixed global variable
#342Tracking and Consent Manager – WP Full Picture231,2803,2233k+Non-prefixed global variable
#343Futurio Extra2378720520k+Text Domain Mismatch
#344FV Flowplayer Video Player231,3111,45420k+Output is not escaped
#345GAinWP Google Analytics Integration for WordPress235251768k+Output is not escaped
#346GamiPress – Gamification plugin to reward points, achievements, badges & ranks in WordPress233,5902,77110k+Output is not escaped
#347The GDPR Framework By Data443231,28751710k+Short PHP open tag found
#348Anti-Malware Security and Brute-Force Firewall23543965100k+Output is not escaped
#349Gmedia Photo Gallery233501,1217k+Non-prefixed global variable
#350Groovy Menu Plugin (Free)231,7292834k+Text Domain Mismatch