Überflüssige Leerzeichen im Titel entfernen

Hin und wieder stolpert man in WordPress-Blogs über zwei Leerzeichen am Anfang des Titels oder auch zwei Leerzeichen innerhalb des Titels. Wie kommt das und kann man was dagegen tun?

Die Funktion wp_title() gibt für unterschiedliche Seiten den jeweils passenden Titel aus. Diese Funktion hat zwei optionale Parameter:

  1. $sep legt das Trennzeichen zwischen den Titelbestandteilen fest, als Standard ist '»' vorgegeben.
  2. $display gibt an, ob der Titel direkt ausgegeben werden soll oder das Funktionsergebnis nur übergeben werden soll. Vorgabe ist hier true, also Ausgabe des Titels an der Stelle, an der die Funktion aufgerufen wird.

Problem: Das Trennzeichen wird im Code dieser WordPress-Funktion von zwei Leerzeichen umschlossen in den Titel eingebaut. Wird nun kein Trennzeichen gewünscht ($sep = ''), werden diese zwei Leerzeichen trotzdem mit ausgegeben.

Lösung: Es gibt zwei drei Möglichkeiten…

Möglichkeit 1

Alle Aufrufe von wp_title('') durch folgenden Code ersetzen:

echo trim(str_replace('  ',' ',wp_title('',false)));

Erläuterung: Bevor der Titel mit echo ausgegeben wird, werden zwei Leerzeichen durch eines ersetzt (str_replace()) und Leerzeichen am Anfang und am Ende entfernt (trim()).

Möglichkeit 2

Die Funktion wp_title() in der Datei template_function_general.php zu patchen (nicht zu empfehlen bzw. nur zu empfehlen für Leute, die wissen, was sie tun). Überall dort, wo Leerzeichen um das $sep herum eingefügt werden, müsste eine zusätzliche Abfrage rein, ob $sep nicht leer ist. Z.B.

if ( isset($title) )
  $prefix = " $sep ";

ersetzen durch

if ( isset($title) & !(''==$sep) )
  $prefix = " $sep ";

Einfacher ist es natürlich, am Ende einmal alle überflüssigen Leerzeichen zu entfernen und hinter

$title = $prefix . $title;

folgende Zeile einzufügen:

$title = trim(str_replace('  ',' ',$title));

Nur bei der derzeitigen Upgrade-Frequenz müsste man die Änderung ziemlich bald wiederholen. Eleganter ist daher

Möglichkeit 3

Ein Plugin, das den Titel vor der Ausgabe korrigiert.

Download:

mr-trimtitle.zip

Installation:
  1. Kopiere die Datei mr-trimtitle.php in das Plugin-Verzeichnis wp-content/plugins/
  2. Aktiviere das Plugin auf der Plugins-Seite der Admin-Oberfläche.

Das könnte Dich auch interessieren...

2 Antworten

  1. Viktor sagt:

    Habe Dein Plugin installiert. Hat auch gut geklappt. Ich hat bisher zwei Leerzeichen dort, nun habe ich eins weniger. Warum ich nun immer noch eins habe, keine Ahnung?

  2. Matthias sagt:

    Weil das Plugin das so macht 🙂 Zwei Leerzeichen werden durch eines ersetzt.

    Wenn man Leerzeichen ganz vermeiden will, muss man die Möglichkeit 2a) wählen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.