Arabic Slug Schema Guard
WordPress must-use plugin that stops core updates from truncating long Arabic URLs.
by ManTek Technologies · github.com/mantekio/wp-arabic-slug-schema-guard · website
★ 2stars
0forks
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/mantekio/wp-arabic-slug-schema-guard/archive/refs/heads/main.zipFrom the readme
Arabic Slug Schema Guard
A WordPress must-use plugin that stops core updates from silently truncating long Arabic (and other non-Latin) URLs.
📖 Full write-up: The 200-byte trap: why WordPress core updates break Arabic URLs
The problem
WordPress stores post and term slugs percent-encoded in VARCHAR(200) columns (wpposts.postname, wpterms.slug). Each Arabic character costs about six bytes once URL-encoded, so a VARCHAR(200) column holds only ~33 Arabic characters, and Arabic publishers widen the columns to VARCHAR(1024).
The trap: on every major core update, dbDelta() reconciles the live schema against WordPress's canonical schema and shrinks VARCHAR(1024) back to VARCHAR(200). Unlike TEXT/BLOB, VARCHAR has no downsize protection, so the truncation is silent and unrecoverable, and your long-headline URLs start returning 404.
Widening the column alone isn't enough, either: WordPress hard-codes 200 in three independent places: storage, slug generation (sanitizetitlewithdashes()), and collision de-duplication (truncatepostslug()).
What it does
- Prevents the shrink (Layer 1): filters dbdeltacreatequeries so dbDelta's desired schema already says 1024; it never emits a destruc
Read the full README on GitHub →