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
#501XT Quick View for WooCommerce231,0791,829400Non-prefixed global variable
#502XT Variation Swatches for WooCommerce231,0511,834500Non-prefixed global variable
#503Yatra – Travel Booking & Tour Operator Software232,2364,024600Non-prefixed global variable
#504YITH Essential Kit for WooCommerce #1233971,4815k+Non-prefixed global variable
#505YITH PayPal Express Checkout for WooCommerce233871,4431k+Non-prefixed global variable
#506YITH WooCommerce Affiliates235491,5276k+Non-prefixed global variable
#507YITH WooCommerce Ajax Product Filter234631,52780k+Non-prefixed global variable
#508Youzify – BuddyPress Community, User Profile, Social Network & Membership Plugin for WordPress232,3171,7145k+Output is not escaped
#509Zephyr Project Manager236672,4541k+Non-prefixed global variable
#5101 Click Migration & Backup: Free WordPress Migration Plugin with Zero Downtime & Easy Clone24140193400Direct Query
#511404 Solution244831,35510k+Non-prefixed class
#512A2 Optimized WP – Turbocharge and secure your WordPress site2427123160k+Missing Arg Domain
#513Anti Spam and list cleaner – AcyChecker2446288400Output is not escaped
#514AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress245,2341,4647k+Output is not escaped
#515Ad Inserter – Ad Manager & AdSense Ads244,260812300k+Output is not escaped
#516Ivory Search – WordPress Search Plugin241,1731,688100k+Non-prefixed global variable
#517Advanced Contact form 7 DB247641,96070k+Non-prefixed global variable
#518Affiliates Manager241,2686538k+Unsafe printing function
#519All Embed – Multi-Source Embed Widgets for Elementor247291,310600Non-prefixed global variable
#520All-In-One Security (AIOS) – Security and Firewall245521,2281m+Non-prefixed global variable
#521Starter Templates – AI-Powered Templates for Elementor & Gutenberg241254011m+Non-prefixed hook name
#522Atarim – Visual Feedback, Review & AI Collaboration247654421k+wp function not compatible with requires wp
#523Multi Page Auto Advance for Gravity Forms246531,3352k+Non-prefixed global variable
#524Auto-Install Free SSL – Generate & Install Free SSL Certificates249911,4958k+Non-prefixed global variable
#525TermsFeed AutoTerms: Privacy Policy Generator, Cookie Consent, GDPR, CCPA, Terms & Conditions, Disclaimers, Cookies Policy, EULA2493916170k+Non Singular String Literal Domain
#526AutomatorWP – Automator plugin for no-code automations, webhooks & custom integrations in WordPress241,7051,3937k+Text Domain Mismatch
#527Awesome Support – WordPress HelpDesk & Support Plugin242251,2396k+Non-prefixed global variable
#528Popup Box – Create Countdown, Coupon, Video, Contact Form Popups244821,25350k+Non-prefixed global variable
#529bBlocks – Essential Gutenberg Blocks & Patterns Collection246561,511700Non-prefixed global variable
#530Backuply – Backup, Restore, Migrate and Clone24704551700k+Non-prefixed global variable
#531Banner Management For WooCommerce248651,8622k+Non-prefixed global variable
#532Barcode Scanner (+Mobile App) – Inventory manager, Order fulfillment system, POS (Point of Sale)241,8651,0891k+Text Domain Mismatch
#533Product Feed Manager For WooCommerce – Sell on 200+ Online Marketplaces242,3173,37510k+slow db query meta key
#534Better Payment – Instant Payments, Donations, Fundraising with Subscriptions & More243429306k+Non-prefixed global variable
#535Arigato Autoresponder and Newsletter241,318769500Text Domain Mismatch
#536BlockMeister – Block Pattern Builder245801,4051k+Non-prefixed global variable
#537Blog Designer Pack – Blog, Post Grid, Post Slider, Post Carousel, Category Post, News246991,69330k+Non-prefixed global variable
#538Booking and Rental Manager for Bike | Car | Resort | Appointment | Dress | Equipment242621,7181k+Non-prefixed global variable
#539Branda – White Label & Branding, Free Login Page Customizer243,17482020k+Text Domain Mismatch
#540Brands for WooCommerce247736936k+Text Domain Mismatch
#541Brave – Create Popup, Optins, Lead Generation, Survey, Sticky Elements & Interactive Content2423729120k+error log print r
#542BrikPanel: WooCommerce Dashboard, Abandoned Cart Recovery, Google Sheets Sync, Inventory Management & Bulk Editor244,3131,425500Text Domain Mismatch
#543BuddyPress Group Email Subscription24513361k+Non-prefixed function
#544Builderall for WordPress244,7781,3071k+Text Domain Mismatch
#545Buttonizer – Floating Menus, Sticky Buttons, & Popup Builder245761,34470k+Non-prefixed global variable
#546Calculated Fields Form – AI Form Builder for WordPress – Contact, Payment, Quote, Quiz & More2434460940k+Non-prefixed global variable
#547Event Calendar – Calendar241,1111,2622k+Text Domain Mismatch
#548Captivate Sync241735571k+Non-prefixed global variable
#549Categorify – WordPress Media Library Category & File Manager245731,3851k+Non-prefixed global variable
#550Message Filter for Contact Form 7241,0571,5941k+Non-prefixed global variable