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
#2951Customizable Post Listings544213700Deprecated parameter: the_author parameter 1
#2952Cyr-To-Lat541648300k+Dynamic hook name
#2953Expanding Archives543793k+Output is not escaped
#2954Extended User Search In WP-Admin5414171k+SQL query is not prepared
#2955Helpie FAQ — Accordion, Docs & Knowledge Base5496899k+Nonce verification recommended
#2956MSN Partner Hub5421251k+Missing direct file access protection
#2957WP Call Button – Easy Click to Call Button for WordPress54213840k+Non-prefixed global variable
#2958WP Menu Icons54685220k+Text Domain Mismatch
#2959Accordions55110120k+slow db query meta query
#2960Quick Buy Now Button for WooCommerce5537395k+Output is not escaped
#2961Clean Archives Reloaded55256600Unsafe printing function
#2962Easy Quotes551131700Direct Query
#2963Enhanced Category Pages5523252k+Direct Query
#2964Go Live Update Urls55114980k+Non-prefixed hook name
#2965Hide Admin Menu55182720k+Non-prefixed function
#2966JetWidgets For Elementor559927910k+Non-prefixed global variable
#2967LoginPress | wp-login Custom Login Page Customizer55124301200k+Non-prefixed function
#2968Fast Page & Post Duplicator55122560k+Direct Query
#2969Page Tagger5530102k+Output is not escaped
#2970ProductFrame – Curated products from affiliate feeds55385400Direct Query
#2971Subscription & Recurring Payment for WooCommerce559447800Non-prefixed global variable
#2972Themeflection Numbers – Number Counter and Animated Numbers55224733k+Text Domain Mismatch
#2973VS Contact Form5533187k+Non-prefixed global variable
#2974VK Block Patterns55861100k+Non-prefixed function
#2975AI Copilot – ChatGPT Chatbot & AI Engine for Post Automation5665201k+Text Domain Mismatch
#2976All in One SEO Pack Importer561725500Direct Query
#2977SMTP by BestWebSoft564861751k+Text Domain Mismatch
#2978Fluent Connect – Connect ThriveCart with your WordPress and FluentCRM563754600curl curl setopt
#2979CIELO API PIX, credit card, debit payment for WooCommerce5611121700Nonce verification recommended
#2980PuzzleMe – Interactive Puzzles for WordPress – Easily publish crosswords, quizzes, word searches and more5636151k+Output is not escaped
#2981Replace Protected Password56618600Input is not sanitized
#2982TableKit: Table Builder Blocks for Gutenberg5680202k+Missing Translators Comment
#2983WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance5657691m+Non-prefixed global variable
#2984Social Chat – Click To Chat App Button568145200k+Text Domain Mismatch
#2985Pantheon Migrations5715261k+Output is not escaped
#2986BestWebSoft’s Pinterest57490176500Text Domain Mismatch
#2987Delete Pending Comments57161110k+Unsafe printing function
#2988APG Google Image Sitemap Feed573633900Non-prefixed global variable
#2989iConvert Promoter57982171k+Non-prefixed global variable
#2990Internal Link Juicer: SEO Auto Linker for WordPress57126190k+Database parameter is not escaped
#2991iZooto – Web Push Notifications5726251k+wp function not compatible with requires wp
#2992JSON API User5717341k+Non-prefixed hook name
#2993Longer Permalinks5727218k+Missing Arg Domain
#2994MC4WP: Mailchimp for WordPress572381m+Non-prefixed global variable
#2995Remove admin menus by role575548k+Input is not validated
#2996Search Exclude57734050k+Text Domain Mismatch
#2997Ultimate Member – Terms & Conditions571994k+Output is not escaped
#2998Filter Orders by Product for WooCommerce579214k+Nonce verification recommended
#2999Sequential Order Numbers for WooCommerce5792410k+Interpolated SQL is not prepared
#3000WP Adsterra Dashboard572221400wp function not compatible with requires wp