Deutsche Anführungszeichen in WordPress ohne Plugin (2)

29. April 2012 | Ca. 6 Minuten Lesedauer

Vor fast einem Jahr schrieb ich schon einmal darüber, wie man in WordPress die englischen Anführungszeichen durch „korrekte“ deutsche Anführungszeichen ersetzt, ohne dafür ein Plugin zu installieren. Das will ich heute ergänzen, da ich mittlerweile noch einiges dazu gelernt habe. Ganz aktuell auch wieder, da ich ein großes Theme in wenigen Tagen neu erstellt habeWas […]

Vor fast einem Jahr schrieb ich schon einmal darüber, wie man in WordPress die englischen Anführungszeichen durch „korrekte“ deutsche Anführungszeichen ersetzt, ohne dafür ein Plugin zu installieren.

Das will ich heute ergänzen, da ich mittlerweile noch einiges dazu gelernt habe. Ganz aktuell auch wieder, da ich ein großes Theme in wenigen Tagen neu erstellt habeWas damals galt, gilt heute natürlich auch noch. Wir wollen die standardmäßig eingesetzten Zollzeichen durch die HTML-Entities der deutschen Anführungen nach „99-66-Regel“ ersetzen und so die typographische Qualität der Webseite deutlich erhöhen.

Die WordPress-Installation an der ich jetzt gearbeitet habe, weist in ihrer Benutzung die „Besonderheit“ auf, das dort oft nicht mit dem visuellen Editor gearbeitet wird. So gelangen gelegentlich auch Zollzeichen direkt in den Nachrichtentext, ohne dass WordPress die wohl mit deren HTML-Entities ersetzt. Das scheint der visuelle Editor sonst nämlich zu machen.

Aufgefallen ist mir das, als bei Einsatz der bisherigen Funktion in dem neuen Theme die Anführungszeichen nicht ersetzt wurden. Ob es wirklich auf die Nutzung der HTML-Ansicht des Editors zurückzuführen ist oder eine sonstige Besonderheit in der spezifischen WordPress-Installation vorliegt oder ob es da mal ein Update gab… Ich weiss es nicht, aber ich hab eine Lösung gefunden und darum ging es letztendlich.

Hier also die neue Funktion:

// Ersetzt Zollzeichen durch deutsche Anfuehrungen, einfach in der functions.php des Themes unterbringen
// Von Florian Meier - www.flomei.de
function deutscheanfuehrungen($content)
{
$content = str_replace (' “', ' „', $content);
$content = str_replace ('”', '“', $content);
$content = str_replace (' "', ' „', $content);
$content = str_replace ('"', '“', $content);
$content = str_replace (' "', ' „', $content);
$content = str_replace ('"', '“', $content);
$content = str_replace (' ‘', ' ‚', $content);
$content = str_replace ('’', '‘', $content);

return $content;
}
add_filter('the_content', 'deutscheanfuehrungen');
add_filter('get_the_content', 'deutscheanfuehrungen');
add_filter('the_title', 'deutscheanfuehrungen');
add_filter('get_the_title', 'deutscheanfuehrungen');
add_filter('the_excerpt', 'deutscheanfuehrungen');
add_filter('get_the_excerpt', 'deutscheanfuehrungen');

Die Ergänzungen in den Zeilen 7 bis 10 suchen hierbei nach anderen „Formen“, in denen die Zollzeichen auftauchen können. Als HTML-Entity für „quotation marks“, dem HTML-Entity für die Zollzeichen an sich und auch der Plaintext-Version der Zollzeichen.

Die Zeilen 16 bis 21 erzeugen Hooks („klinken sich ein“) in die Funktionen, die meist für die Ausgabe der Inhalte genutzt werden. Das Ganze in der functions.php eures Themes platziert und ihr seid einige Probleme los.

Allerdings ist das immer noch nicht die ultimative Lösung, wie ich feststellen musste.

Einige Anführungen sind anscheinend direkt als Zollzeichen kodiert. Wenn man das allerdings ersetzen lassen würde, dann könnte man auch keine Bilder mehr anzeigen (ja, ich habe es ausprobiert und bin damit hingefallen). Hier müsste man jetzt schwerere Geschütze auffahren und schauen ob ein Zeichen Teil eines HTML-Tags ist. Wenn nicht, dann könnte man das ersetzen, ansonsten muss man die Finger davon lassen…

Dann ist man allerdings auch auf dem Niveau eines Plugins angekommen und das wollte ich ja bisher gerade nicht. So gesehen zeigt diese Sache sehr schön, wo ein einfacher Hook aufhört und wo der sinnvolle Einsatz eines Plugins anfängt.

Vielleicht schreib ich ja auch mal ein kleines „Gute Blog-Typographie“-Plugin, es gäbe da einige Sachen, die WordPress schöner machen könnte…

Bis dahin brennen wir uns jetzt die Tastaturcodes für die deutschen Anführungszeichen ein.

Die ALT-Taste gedrückt halten und auf dem Ziffernblock 0132 eingeben führt zu einem „Anführungszeichen“, ALT + 0147 zu einem „Abführungszeichen“.

ALT + 0133 macht übrigens drei kleine Punkte (Auslassungszeichen, siehe nach der Klammer)…

Und mit ALT  + 0150 erzeugt man einen Gedankenstrich (Bindestriche sind keine Gedankenstriche – letztere sind länger).

Genug davon.

Bis bald!