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
#1801Eventer4061551k+Output is not escaped
#1802FameTheme Demo Importer4087430k+Nonce verification recommended
#1803Flamingo4015228800k+Nonce verification recommended
#1804Product Enquiry for WooCommerce4057413k+Output is not escaped
#1805Hostinger Reach – AI-Powered Email Marketing for WordPress409461m+Direct Query
#1806Image Alt Text4079979k+Non Singular String Literal Domain
#1807Internal Linking of Related Contents40714471k+Output is not escaped
#1808JSM Show Post Metadata40156610k+Nonce verification recommended
#1809JSM Show User Metadata4014643k+Nonce verification recommended
#1810La Sentinelle antispam4088463k+Output is not escaped
#1811Logbook4033592k+Nonce verification recommended
#1812Modal Window – create popup modal window40417010k+Non-prefixed global variable
#1813Multiple Featured Images4050225k+Output is not escaped
#1814Plugin Load Filter40761127k+Text Domain Mismatch
#1815Quiz Cat – WordPress Quiz Plugin40151695k+Output is not escaped
#1816Random Banner40591251k+Output is not escaped
#1817Redirector4048327k+Output is not escaped
#1818Role Based Redirect4020962k+Non-prefixed global variable
#1819Shortcodes Finder40221884k+Nonce verification recommended
#1820Simple Page Sidebars40556520k+Output is not escaped
#1821Statify Widget4052134k+Output is not escaped
#1822Payment Gateway – nexi Alpha Bank for WooCommerce4028451k+Missing nonce verification
#1823Word Balloon402012510k+Request data is not unslashed
#1824WP All Import – Job Listing Import for WP Job Manager4035272k+Output is not escaped
#1825Media Library Categories40294920k+Output is not escaped
#1826WP Reroute Email401411061k+Output is not escaped
#1827WPC Grouped Product for WooCommerce4019953k+Request data is not unslashed
#1828WPFront Notification Bar402224450k+Output is not escaped
#1829WPS Menu Exporter40472210k+Output is not escaped
#1830My YouTube Channel4054385k+Output is not escaped
#1831Zippy4043319k+Output is not escaped
#1832AMP for WP – Accelerated Mobile Pages416562,40180k+Non-prefixed global variable
#1833Alma – Pay in installments or later for WooCommerce41116681k+Exception output is not escaped
#1834Authenticator4159441k+Output is not escaped
#1835Auto Focus Keyword for SEO4112382k+Input is not validated
#1836Auto Image Attributes From Filename With Bulk Updater (Add Alt Text, Image Title For Image SEO)4117526100k+Unsafe printing function
#1837Beautiful Cookie Consent Banner41337640k+Non-prefixed global variable
#1838BuddyPress Xprofile Custom Field Types41391894k+Missing nonce verification
#1839Database for CF74137322k+Text Domain Mismatch
#1840DevVN Local Store4184281k+Unsafe printing function
#1841Disable Everything41901630k+Output is not escaped
#1842Duplicate Post Page Menu & Custom Post Type41351110k+Text Domain Mismatch
#1843Duplicate Page and Post41262180k+Unsafe printing function
#1844Multiple Themes411124110k+Output is not escaped
#1845Log cleaner for Solid Security4165478k+Text Domain Mismatch
#1846Mobile Contact Bar41943610k+Unsafe printing function
#1847Mollie Forms41145653k+Request data is not unslashed
#1848Native Emoji4154375k+Unsafe printing function
#1849Social Login4181105k+Input is not sanitized
#1850Omnibus — show the lowest price41353710k+Output is not escaped