Releases: aliafshany/wp-where-is-this-text
Release list
v1.0.1 — WordPress.org submission ready
Prepares the plugin for the WordPress.org directory review queue.
- All functions and constants renamed from the
wit_/WIT_prefix towheretext_/WHERETEXT_. Three-letter prefixes collide in WordPress's shared global namespace and reviewers reject on it. - The submitted search term now passes through
sanitize_text_field(). It was already safe — used only as a prepared LIKE value and escaped on output — but reviewers require visible sanitisation of superglobals. - Adds
readme.txt, the format the directory parses for the plugin page. It is separate from README.md, which the directory ignores.
Filter names changed with the prefix. If you used them, update wit_option_location to wheretext_option_location, wit_variants to wheretext_variants, and wit_results to wheretext_results.
No change to what the plugin does or finds.
The attached ZIP is the exact package for WordPress.org submission.
v1.0.0 — Where Is This Text
First release.
Paste a line of text you can see on your site and get the exact admin screen that edits it, with a button that goes there. Read-only — it never changes anything.
What it finds that other search plugins miss
- Page-builder content.
json_encode()escapes non-ASCII by default, so Elementor's_elementor_dataholds no readable Persian, Arabic, Hebrew, Greek, Cyrillic, CJK or accented Latin at all — only\uXXXXsequences. Searching for the text as displayed can never match it. This searches the escaped form too. - Look-alike letters. Arabic
ي/كand Persianی/کare different code points that render almost identically. Both spellings are searched. - Widgets, properly. Resolves the specific instance and names the sidebar it sits in, and says whether it is live or parked in Inactive Widgets — so you don't edit the dead copy.
When nothing matches, it narrows
The usual cause of "found nothing" is a heading and its subtitle pasted as one line, which no single row contains. It retries with shorter phrases and tells you which one hit.
Safety
SELECT statements only, no writes, no outbound requests. The single add_action() sits behind an is_admin() guard, so a visitor request attaches no callback and runs no query. manage_options plus a nonce, $wpdb->prepare() with esc_like() throughout, escaped output, capped rows, long columns truncated in SQL.
Install
Upload the ZIP under Plugins → Add New, or drop where-is-this-text.php into wp-content/mu-plugins/. Requires WordPress 5.6+ and PHP 7.4+. No dependencies, no settings page.