WordPress.Security.EscapeOutput.OutputNotEscaped

Output is not escaped

Dynamic data is printed to the page without an escaping function for the output context.

critical weight

Why It Shows Up

WordPress Coding Standards detected a variable, option, request value, or function result reaching HTML output without a nearby escaping call.

Why It Matters

Unescaped output can become cross-site scripting when attackers control any part of the value being printed.

How to Fix

  • Use `esc_html()` for plain text, `esc_attr()` for attributes, and `esc_url()` for URLs.
  • Use `wp_kses()` or `wp_kses_post()` when limited HTML is intentionally allowed.
  • Escape as late as possible, right before output, so the selected escaping function matches the final context.

Affected Plugins

RankPluginScoreErrorsWarningsInstallsAddedUpdatedTop Issue
#2251CiviCRM Admin Utilities3519871k+Non-prefixed hook name
#2252Cloudflare352885200k+Non-prefixed namespace
#2253Flexible SSL for CloudFlare3596100k+Output is not escaped
#2254CM E-Mail Blacklist – Simple email filtering for safer registration35269205800Output is not escaped
#2255CompressX — AVIF & WebP Converter, Media Replacement352642340k+Missing nonce verification
#2256Conditional Menus35922860k+Text Domain Mismatch
#2257Conditional Widgets3567337k+Output is not escaped
#2258Constant Contact Forms35418920k+Missing nonce verification
#2259Content Mask35503501k+Non-prefixed global variable
#2260GDPR Cookie Consent Notice Box3546171k+Output is not escaped
#2261Cookie Information – Cookie Banner with Consent Mode v235185282k+Output is not escaped
#2262Cookie-Script.com356710k+Non-prefixed class
#2263Cookies and Content Security Policy3526141210k+Output is not escaped
#2264Core Framework35706210k+Text Domain Mismatch
#2265Counter live visitors for WooCommerce35189397k+Short PHP open tag found
#2266Create Block Theme3543520k+unlink unlink
#2267CrowdSec351301192k+Output is not escaped
#2268Cryptex | E-Mail Address Protection356210900Output is not escaped
#2269CubeWP Framework35114714k+wp function not compatible with requires wp
#2270Cue by AudioTheme.com35281506k+Non-prefixed hook name
#2271Currency Converter351044400Output is not escaped
#2272Custom 404 Pro3550277k+wp function not compatible with requires wp
#2273Custom CSS and JavaScript35389110k+Input is not sanitized
#2274Custom JavaScript Editor35823400Missing Version
#2275Custom Post Type Maker35240866k+Unsafe printing function
#2276Customizer Backup & Reset358107k+Output is not escaped
#2277DarkLooks – Dark Mode Switcher For WordPress3519521900Text Domain Mismatch
#2278Datafeedr Product Sets356022065k+Output is not escaped
#2279Deposits & Partial Payments for WooCommerce351741445k+Text Domain Mismatch
#2280Nexi Checkout35453083k+Dynamic hook name
#2281Dintero Checkout for WooCommerce Payment Methods355848600Text Domain Mismatch
#2282PiWeb Disable payment method / Partial payment for WooCommerce35552214k+Non-prefixed class
#2283Disable and Remove Google Fonts | GDPR & DSGVO friendly352111100k+Missing Translators Comment
#2284Disable XML-RPC-API3544452100k+Text Domain Mismatch
#2285Disk Usage Sunburst3530349k+Output is not escaped
#2286Dokan Invoice3593500Missing Translators Comment
#2287Potent Donations for WooCommerce3514252k+Missing nonce verification
#2288Duplica – Duplicate Posts, Pages, Custom Posts or Users3514312k+Non-prefixed global variable
#2289DynamicTags35116162k+Text Domain Mismatch
#2290Easy Dash for LearnDash3562388700Text Domain Mismatch
#2291Easy Noindex And Nofollow355518400Output is not escaped
#2292Easy Panorama3512010500Non Singular String Literal Domain
#2293Easy Post Types and Fields351381351k+Text Domain Mismatch
#2294Product Bundle Builder for WooCommerce351521386k+Text Domain Mismatch
#2295Easy Social Icons3518215820k+Output is not escaped
#2296Easy SwipeBox35157102k+Non Singular String Literal Domain
#2297Editorial Calendar3512716020k+Output is not escaped
#2298Gutenberg Blocks Library & Toolkit – Editor Plus3527116k+Text Domain Mismatch
#2299Elements Hive for Breakdance3576251k+Output is not escaped
#2300Elfsight Blocks for Elementor — 80+ Widgets3544432k+Text Domain Mismatch