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 |
|---|---|---|---|---|---|---|---|---|
| #1 | Themify Builder | 9 | 5,304 | 2,136 | 5k+ | Text Domain Mismatch | ||
| #2 | JetBackup – Backup, Restore & Migrate | 10 | 1,563 | 149 | 200k+ | Exception output is not escaped | ||
| #3 | MDTF – Meta Data and Taxonomies Filter | 16 | 1,550 | 1,956 | 1k+ | Non-prefixed global variable | ||
| #4 | AnyComment | 17 | 445 | 449 | 5k+ | Output is not escaped | ||
| #5 | RestroPress – Online Food Ordering System | 17 | 524 | 3,155 | 1k+ | Non-prefixed global variable | ||
| #6 | wpForo Forum | 17 | 4,048 | 2,922 | 20k+ | Unsafe printing function | ||
| #7 | WPtouch – Make your WordPress Website Mobile-Friendly | 17 | 1,466 | 325 | 50k+ | Text Domain Mismatch | ||
| #8 | Podlove Podcast Publisher | 18 | 2,354 | 1,433 | 3k+ | Output is not escaped | ||
| #9 | Shopping Cart & eCommerce Store | 18 | 5,373 | 17,466 | 3k+ | Non-prefixed global variable | ||
| #10 | Element Pack Addons for Elementor – Elementor Widgets, Elementor Templates, Elementor Addons | 19 | 10,340 | 360 | 100k+ | Text Domain Mismatch | ||
| #11 | Go Fetch Jobs (for WP Job Manager) | 19 | 1,410 | 1,741 | 700 | Non-prefixed global variable | ||
| #12 | AI Infographic Maker | 19 | 1,383 | 599 | 600 | Output is not escaped | ||
| #13 | Leaflet Maps Marker (Google Maps, OpenStreetMap, Bing Maps) | 19 | 3,275 | 3,228 | 9k+ | Output is not escaped | ||
| #14 | Really Simple Security – Simple and Performant Security (formerly Really Simple SSL) | 19 | 536 | 379 | 3m+ | Missing Translators Comment | ||
| #15 | Membership Plugin – Kadence Memberships | 19 | 5,082 | 2,982 | 9k+ | Text Domain Mismatch | ||
| #16 | WP Email Template | 19 | 344 | 345 | 2k+ | Exception output is not escaped | ||
| #17 | AweBooking – Hotel Booking System | 20 | 309 | 514 | 1k+ | Non-prefixed global variable | ||
| #18 | Brizy – Page Builder | 20 | 586 | 726 | 70k+ | Output is not escaped | ||
| #19 | SysBasics Customize My Account for WooCommerce – Live My Account Customizer | 20 | 743 | 911 | 8k+ | Non-prefixed global variable | ||
| #20 | Download Monitor | 20 | 423 | 1,364 | 80k+ | Non-prefixed hook name | ||
| #21 | Event Espresso – Event Registration & Ticketing Sales | 20 | 12,698 | 2,135 | 600 | Text Domain Mismatch | ||
| #22 | Event Organiser | 20 | 1,104 | 544 | 20k+ | Text Domain Mismatch | ||
| #23 | GiveWP – Donation Plugin and Fundraising Platform | 20 | 3,411 | 3,559 | 100k+ | Output is not escaped | ||
| #24 | GoUrl Bitcoin Payment Gateway & Paid Downloads & Membership | 20 | 1,832 | 720 | 700 | Non Singular String Literal Domain | ||
| #25 | Leaky Paywall | 20 | 322 | 789 | 600 | Nonce verification recommended | ||
| #26 | MBE eShip | 20 | 527 | 740 | 1k+ | Non-prefixed global variable | ||
| #27 | Brevo – Email, SMS, Web Push, Chat, and more. | 20 | 460 | 646 | 100k+ | Request data is not unslashed | ||
| #28 | MAS Videos | 20 | 519 | 1,693 | 1k+ | Non-prefixed global variable | ||
| #29 | Microthemer Lite – Visual Editor to Customize CSS | 20 | 1,004 | 1,699 | 10k+ | Non-prefixed global variable | ||
| #30 | Nimble Page Builder | 20 | 1,591 | 1,684 | 30k+ | Missing Arg Domain | ||
| #31 | Pix por Piggly (para Woocommerce) | 20 | 547 | 195 | 4k+ | Exception output is not escaped | ||
| #32 | Events Manager – OpenStreetMaps | 20 | 559 | 444 | 700 | Output is not escaped | ||
| #33 | WP Minify Fix | 20 | 306 | 380 | 800 | Output is not escaped | ||
| #34 | Premium Packages – Sell Digital Products Securely | 20 | 2,032 | 2,190 | 2k+ | Non-prefixed global variable | ||
| #35 | Backup Migration | 21 | 981 | 1,093 | 80k+ | Non-prefixed global variable | ||
| #36 | Forumax – AI Powered Advanced Community Forum Plugin | 21 | 4,936 | 4,353 | 600 | Text Domain Mismatch | ||
| #37 | bbPress | 21 | 929 | 3,672 | 100k+ | Non-prefixed function | ||
| #38 | Kadence Security – Password, Two Factor Authentication, and Brute Force Protection | 21 | 1,060 | 957 | 700k+ | Missing Translators Comment | ||
| #39 | Booking Ultra Pro Appointments Booking Calendar Plugin | 21 | 761 | 2,083 | 400 | Request data is not unslashed | ||
| #40 | Better Messages – Chat Rooms, Group Chat, Private Messages & AI Chat Bots | 21 | 1,621 | 2,033 | 10k+ | Direct Query | ||
| #41 | Duplicator – Backups & Migration Plugin – Cloud Backups, Scheduled Backups, & More | 21 | 2,572 | 1,277 | 1m+ | Output is not escaped | ||
| #42 | Envo Extra | 21 | 878 | 600 | 20k+ | Text Domain Mismatch | ||
| #43 | eRoom – Webinar & Meeting Plugin for Zoom, Google Meet, Microsoft Teams | 21 | 186 | 437 | 9k+ | Non-prefixed global variable | ||
| #44 | EventPrime – Events Calendar, Bookings and Tickets | 21 | 873 | 4,308 | 7k+ | Non-prefixed global variable | ||
| #45 | Feeds for YouTube (YouTube video, channel, and gallery plugin) | 21 | 558 | 978 | 100k+ | Output is not escaped | ||
| #46 | FileOrganizer – WordPress File Manager | 21 | 536 | 241 | 200k+ | unlink unlink | ||
| #47 | Filter Everything — WordPress & WooCommerce Filters | 21 | 643 | 933 | 50k+ | Non-prefixed global variable | ||
| #48 | Leyka | 21 | 257 | 3,446 | 2k+ | Request data is not unslashed | ||
| #49 | Mooberry Book Manager | 21 | 1,040 | 399 | 1k+ | Text Domain Mismatch | ||
| #50 | MotoPress Hotel Booking | 21 | 3,067 | 1,037 | 10k+ | Text Domain Mismatch |