WordPress.WP.I18n.UnorderedPlaceholdersText
Unordered Placeholders Text
A translation or text-domain pattern does not match WordPress internationalization expectations.
Why It Shows Up
Plugin Check found missing text domains, mismatched domains, missing translator comments, variable-only strings, placeholder issues, or deprecated translation loading patterns.
Why It Matters
Translation issues make the plugin harder to localize and can break strings for non-English WordPress users.
How to Fix
- Use the plugin slug as the text domain unless the plugin intentionally declares a different one.
- Keep translatable strings literal and move variables into placeholders.
- Add translator comments before strings with placeholders or ambiguous context.
References
Affected Plugins
| Rank | Plugin | Score | Errors | Warnings | Installs | Added | Updated | Top Issue |
|---|---|---|---|---|---|---|---|---|
| #1151 | Grids: Layout builder for WordPress | 56 | 24 | 27 | 2k+ | Missing direct file access protection | ||
| #1152 | Require Featured Image | 56 | 20 | 6 | 3k+ | Output is not escaped | ||
| #1153 | TextBuilder | 56 | 20 | 34 | 4k+ | Missing Arg Domain | ||
| #1154 | Vibe AI – MCP Server for WordPress. Connect Claude, ChatGPT & Cursor | 57 | 11 | 51 | 2k+ | Interpolated SQL is not prepared | ||
| #1155 | WP Old Post Date Remover | 57 | 25 | 7 | 2k+ | Unsafe printing function | ||
| #1156 | WP Table Builder – Drag & Drop Table Builder | 57 | 63 | 39 | 50k+ | Not Allowed | ||
| #1157 | Houzez WooCommerce Addon | 58 | 22 | 21 | 4k+ | Missing Translators Comment | ||
| #1158 | Connect SendGrid for Emails | 59 | 37 | 103 | 900 | Missing direct file access protection | ||
| #1159 | RealHomes PayPal Payments | 60 | 55 | 23 | 400 | Non Singular String Literal Domain | ||
| #1160 | Creative Commons | 61 | 103 | 17 | 700 | Text Domain Mismatch | ||
| #1161 | GetPaid Stripe Payments | 61 | 206 | 44 | 2k+ | Text Domain Mismatch | ||
| #1162 | Hotjar | 61 | 16 | 4 | 70k+ | Output is not escaped | ||
| #1163 | Order Weight for WooCommerce | 61 | 24 | 34 | 600 | Text Domain Mismatch | ||
| #1164 | QR Code PicPay for WooCommerce | 61 | 15 | 25 | 600 | Non-prefixed global variable | ||
| #1165 | Bulk Edit YOAST SEO fields in Spreadsheet | 61 | 56 | 16 | 1k+ | Non Singular String Literal Domain | ||
| #1166 | Dehkadeh Fonts | 63 | 117 | 5 | 700 | Text Domain Mismatch | ||
| #1167 | Email Post Changes | 63 | 43 | 8 | 500 | Missing Arg Domain | ||
| #1168 | Rating Widget: Post Rating, 5 Star Rating, Reviews, Thumbs Up & Down, Reaction | 63 | 177 | 27 | 400 | Missing direct file access protection | ||
| #1169 | PayPing Gateway For Woocommerce | 63 | 11 | 40 | 1k+ | Non-prefixed hook name | ||
| #1170 | Admin CSS MU | 64 | 30 | 582 | 10k+ | Non-prefixed global variable | ||
| #1171 | Estonian Shipping Methods for WooCommerce | 64 | 97 | 16 | 1k+ | Text Domain Mismatch | ||
| #1172 | Online Payments with iK Pay Gateway | 64 | 12 | 28 | 1k+ | Missing nonce verification | ||
| #1173 | Werk aan de Muur | 64 | 48 | 20 | 900 | Non Singular String Literal Domain | ||
| #1174 | Integration for Elementor forms – Sendinblue | 65 | 94 | 56 | 7k+ | Text Domain Mismatch | ||
| #1175 | Easy PHP Settings | 66 | 34 | 48 | 1k+ | Missing Translators Comment | ||
| #1176 | Really Simple CSV Importer | 66 | 38 | 8 | 40k+ | Output is not escaped | ||
| #1177 | Visual Link Preview | 66 | 47 | 2 | 10k+ | Output is not escaped | ||
| #1178 | WooCommerce Accepted Payment Methods | 66 | 28 | 4 | 2k+ | badly named files | ||
| #1179 | Cart links for WooCommerce | 67 | 13 | 16 | 500 | Text Domain Mismatch | ||
| #1180 | BitPay Gateway for WooCommerce | 67 | 64 | 21 | 400 | Text Domain Mismatch | ||
| #1181 | JAMstack Deployments | 67 | 33 | 3 | 1k+ | Short PHP open tag found | ||
| #1182 | WP Post Branches | 67 | 16 | 12 | 4k+ | Nonce verification recommended | ||
| #1183 | Comment Approved | 68 | 6 | 14 | 500 | Input is not sanitized | ||
| #1184 | Desert Companion | 68 | 412 | 837 | 20k+ | Non-prefixed global variable | ||
| #1185 | News Magazine X Core | 68 | 63 | 30 | 5k+ | Missing Translators Comment | ||
| #1186 | Smartarget – Chat Buttons & Engagement Apps | 68 | 31 | 11 | 1k+ | Non Singular String Literal Domain | ||
| #1187 | Title Toggle for Storefront Theme | 68 | 16 | 9 | 3k+ | Output is not escaped | ||
| #1188 | WiserReview Product Reviews for WooCommerce | 68 | 21 | 110 | 900 | Non-prefixed global variable | ||
| #1189 | WP and Divi Icons | 68 | 201 | 56 | 2k+ | wp function not compatible with requires wp | ||
| #1190 | WP Smart Preloader | 68 | 27 | 10 | 5k+ | Output is not escaped | ||
| #1191 | WP Wand – Unlimited Content Generation using AI – for OpenAI, Claude, Openrouter and Deepseek | 69 | 452 | 25 | 1k+ | Text Domain Mismatch | ||
| #1192 | Bulk menu creator | 69 | 27 | 4 | 1k+ | Text Domain Mismatch | ||
| #1193 | Debug Bar Rewrite Rules | 69 | 29 | 38 | 800 | Non-prefixed global variable | ||
| #1194 | Custom Currency for WooCommerce | 70 | 63 | 5 | 2k+ | Missing direct file access protection | ||
| #1195 | Library | 70 | 14 | 3 | 700 | Output is not escaped | ||
| #1196 | Points and Rewards for WooCommerce | 70 | 6 | 14 | 7k+ | Nonce verification recommended | ||
| #1197 | WindPress – Tailwind CSS integration for WordPress | 71 | 16 | 106 | 3k+ | Non-prefixed hook name | ||
| #1198 | WP 4 Me Title Remover | 71 | 17 | 13 | 1k+ | Missing direct file access protection | ||
| #1199 | Video Backgrounds for SiteOrigin Page Builder | 72 | 55 | 5 | 2k+ | Text Domain Mismatch | ||
| #1200 | Webyx for Gutenberg – Fullpage Fullscreen Scrolling Websites | 72 | 14 | 11 | 600 | Output is not escaped |