Wenn das Unsichtbare sichtbar wird – Zero-Width-Zeichen aus Deinem WordPress vertreiben
Manchmal schleicht sich in unsere Texte ein lautloser Störton: winzige, unsichtbare Zeichen – U + 200B, U + 200D oder U + FEFF – die weder Auge noch Herz erkennen, doch Code und Layout erschüttern. Sie stammen oft aus KI-Generatoren, reisen lautlos durch Copy-&-Paste-Pfade und nisten sich in WordPress ein. Was sie anrichten? Seltsame Umbrüche, zerbrochene Shortcodes, merkwürdige SEO-Signale – kurz: Unruhe im harmonischen Seitenbild.
Lass uns diese Geister gemeinsam bannen.
! Bevor du neuen Code live nimmst, gönn deinem Server bzw. deiner Seite zuerst ein sauberes Backup.
Warum sind Zero-Width-Zeichen ein Problem?
Sie sind wie Sand im Getriebe: winzig, aber wirkungsvoll. Browser stolpern, Themes kapitulieren, Plugins verheddern sich. Wer seine Texte liebt, jagt die Störenfriede fort, bevor sie große Trümmer hinterlassen.
1 | Handarbeit im Editor – die geduldige Methode
Öffne den Beitrag in Gutenberg oder dem Classic Editor.
Wechsle oben rechts in den Code-Editor.
Suche nach seltsam leeren Stellen, nach
\u200B
,\u200D
,
,
.Lösche sie oder ersetze sie durch ein normales Leerzeichen.
Speichern, Seite prüfen, aufatmen.
Wann? Wenn es nur wenige Posts betrifft und Du jedem Wort ohnehin noch einmal liebevoll über die Schulter schaust.
2 | Magie per Plugin – Automatik im Hintergrund
Installiere WPCode (oder ein ähnliches Snippet-Plugin) und füttere es mit diesem Zauberspruch:
add_filter( 'the_content', function ( $content ) {
return preg_replace( '/[\x{200B}\x{200D}\x{FEFF}]/u', '', $content );
});
Aktivieren, speichern, fertig. Von nun an werden die Geister während jeder Seitenausgabe lautlos ausgetrieben.
Empfolen
Bevor du neuen Code live nimmst, gönn deinem Server bzw. deiner Seite zuerst ein sauberes Backup.
Wen du UTF-8-Bytestrings löschen möchtest, solltest du dein Blog nach verschibungen und Formatierung überpruffen. Derade nach U+2028 – Line Separator
/**
* Bereinigt KI-generierte Texte, indem unsichtbare Unicode-Zeichen entfernt oder ersetzt werden.
*/
function clean_ai_unicode_chars( $content ) {
// Prüfe, ob Inhalt ein String ist und nicht leer
if ( ! is_string( $content ) || empty( $content ) ) {
return $content;
}
// Nur im Hauptloop anwenden, um Performance zu schonen
if ( ! is_main_query() || ! in_the_loop() ) {
return $content;
}
// Zu entfernende Unicode-Zeichen
$unicode_chars_remove = [
"\xE2\x80\x8B", // U+200B: Zero-Width Space
"\xE2\x80\x8D", // U+200D: Zero-Width Joiner
"\xE2\x80\x8C", // U+200C: Zero-Width Non-Joiner
"\xEF\xBB\xBF", // U+FEFF: Byte Order Mark
"\xE2\x81\xA0", // U+2060: Word Joiner
"\xE2\x80\xA9", // U+2029: Paragraph Separator
];
// Zu ersetzende Unicode-Zeichen mit Ersatz
$unicode_chars_replace = [
"\xE2\x80\xA8" => "\n", // U+2028: Line Separator -> Zeilenumbruch
"\xE2\x80\x93" => "-", // U+2013: En-Dash -> Bindestrich
"\xE2\x80\x94" => "-", // U+2014: Em-Dash -> Bindestrich
];
// Entferne Zeichen
$clean_content = str_replace( $unicode_chars_remove, '', $content );
// Ersetze Zeichen
$clean_content = str_replace(
array_keys( $unicode_chars_replace ),
array_values( $unicode_chars_replace ),
$clean_content
);
return $clean_content;
}
add_filter( 'the_content', 'clean_ai_unicode_chars', 10, 1 );
Wenn das Unsichtbare sichtbar wird – Zero-Width-Zeichen aus Deinem WordPress vertreiben
Manchmal schleicht sich in unsere Texte ein lautloser Störton: winzige, unsichtbare Zeichen – U + 200B, U + 200D oder U + FEFF – die weder Auge noch Herz erkennen, doch Code und Layout erschüttern. Sie stammen oft aus KI-Generatoren, reisen lautlos durch Copy-&-Paste-Pfade und nisten sich in WordPress ein. Was sie anrichten? Seltsame Umbrüche, zerbrochene Shortcodes, merkwürdige SEO-Signale – kurz: Unruhe im harmonischen Seitenbild.
Lass uns diese Geister gemeinsam bannen.
Warum sind Zero-Width-Zeichen ein Problem?
Sie sind wie Sand im Getriebe: winzig, aber wirkungsvoll. Browser stolpern, Themes kapitulieren, Plugins verheddern sich. Wer seine Texte liebt, jagt die Störenfriede fort, bevor sie große Trümmer hinterlassen.
3 | Handarbeit im Editor – die geduldige Methode
Öffne den Beitrag in Gutenberg oder dem Classic Editor.
Wechsle oben rechts in den Code-Editor.
Suche nach seltsam leeren Stellen, nach
\u200B
,\u200D
,
,
.Lösche sie oder ersetze sie durch ein normales Leerzeichen.
Speichern, Seite prüfen, aufatmen.
Wann? Wenn es nur wenige Posts betrifft und Du jedem Wort ohnehin noch einmal liebevoll über die Schulter schaust.