- Marnems Sicht der Dinge - http://www.marnem.de/blog -

Umlaute machen Ärger

Vorhin hat mich mein Dad [1] darauf hingewiesen, dass das Plugin Search-Hilite [2] keine Umlaute kennt. Eine dumme Sache das, sind Umlaute im Deutschen doch nicht selten.

Search-Hilite sorgt dafür, dass die gesuchten Worte farblich hinterlegt sind. Sucht man zB mit Google [3] oder der WordPress-Suche [4] nach „Korbinian Schoder München Hohenzollernstraße“, so werden diese Suchbegriffe in meinem Blog bunt markiert. Die zwei Worte mit den Umlauten aber würden normalerweise nicht markiert, da das Plugin keine Umlaute kennt.

Eigentlich ist die erwartete Lösung ganz einfach: Man sucht im Quellcode des Plugins die richtige Stelle, lässt dort die Suchbegriffe auf Umlaute durchsuchen und ändert sie in die passende Kodierung. Schnell findet man heraus, dass die Zielkodierung HTML-Dezimal ist. Die WordPress-Suche gibt in der Adressleiste des Browsers einen UTF-8 [5] String, das Blog wurde unter „Einstellungen|Lesen“ auf UTF-8 eingestellt, also sollte die Sache doch klar sein. Tja, sollte. Ich habe fast eine 3/4 Stunde gebraucht um herauszubekommen, dass in der Suchanfrage von Search-Hilite schon ISO 8859-1 [6], also Ä und ä vorliegen 😛
Doofes Ding das.

Die Änderungen nimmt man so vor:

  1. „Plugins|Plugin-Editor|Search_Hilite“ öffnen
  2. Suchen nach

    $term = preg_quote($term, '/');

  3. Davor folgende Zeilen einsetzen, dabei die * in der ersten Zeile entfernen

    $hilite_chars['feed'] = array('&*#196;', '&*#228;', '&*#214;', '&*#246;', '&*#220;', '&*#252;', '&*#223;'); $hilite_chars['ecto'] = array('Ä', 'ä', 'Ö', 'ö', 'Ü', 'ü', 'ß'); $term = str_replace($hilite_chars['ecto'],$hilite_chars['feed'], $term);

  4. „Datei aktualisieren“

Dies dürfte bei vielen Blogs funktionieren. Eine Gewährleistung oder ähnliches gebe ich dafür aber nicht, falls also etwas schief gehen sollte, könnt ihr mich nicht haftbar machen.

Das Umlaut-Highlight ist übrigens Case-sensitive, Groß- und Kleinschreibung in den Suchbegriffen wird also unterschieden.

Ein Gruß geht an Michael Renzmann, der mich mit mit seinem o42clean_umlauts [7] inspiriert hat (oder anders gesagt, ersetzt man im obigen Code „hilite“ mit „o42_cu“ und „$term“ mit „$title“, dann findet man die Zeilen in seinem Plugin)

[Nachtrag] Austricksen der HTML Interpretation in der Anzeige des Codes eingebaut