WordPress: unterschiedliche Titel für gleiche Seite

WordPress: alternativer Titel Nehmen wir mal an, man überführt eine recht umfangreiche statische Website nach WordPress. Die Website hat viele Unterseiten und auf den einzelnen Unterseiten sind die Überschriften lang. Lang sind die deswegen, weil meiner Meinung nach eine Überschrift keine Zierde ist, sondern eine starke Aussagekraft haben muss und wenn es geht schon die Kernaussage der Unterseite bzw. eines Artikels in sich tragen sollte.

Bei WordPress bekommt man dabei ein Problem, weil die Überschrift bei sprechenden Permalinks gleichzeitig in der URL abgebildet wird. Das ist aber ein vergleichsweise kleines Problem, da man die URL, so bald sprechende Permalinks aktiviert sind, schon bei der Erstellung des Artikels/Seite komfortabel verändern kann.

Das größere Problem ist die Tatsache, dass wenn man die Pages automatisch in der Navigation ausgeben möchte, der Titel bzw. die Hauptüberschrift auch als Menüpunkt ausgegeben wird.

Je nach dem, wie lang die Überschrift ist, schaut es komisch in der Seitenleiste aus und bei einer horizontalen Navigation ist dann auch sehr schnell Schluss, weil nur wenige Menüpunkte rein passen.

Die neue Menü-Funktion aus WordPress 3.0 könnte hier eine Lösung sein. Da man hier den einzelnen Navigationselementen individuelle Menünamen vergeben kann … unabhängig von der Hauptüberschrift.

Aber ich persönlich finde die Idee der neuen Funktion zwar nett, sie ist aber noch lange nicht ausgereift. Die Erstellung von Menüs ist zumindest in meinen Backends sehr langwierig und imho umständlich. Nicht zu unterschätzen ist, dass die neue Menü-Funktion ganz gewaltig an der Datenbank saugt und ordentlich viele Abfragen produziert. Siehe dazu den Artikel von Michael Preuß. Ich habe es auch vorhin noch einmal getestet: nur zwei Menüpunkte der neuen Funktion verursachen sieben zusätzliche DB-Anfragen.

In meinem speziellen Beispiel wäre der Einsatz der neue Menüfunktion eh nicht hilfreich gewesen, da ich u. a. die Unterseiten nur anzeigen wollte wenn man sich auf entsprechenden Eltern- und Geschwister-Seiten befindet. Dafür gibt es zwar Plugins wie z. B. Flexi Pages, aber auch hier hat man das Problem, dass die Überschrift automatisch übernommen wird.

[adrotate group=”6″]

Die Lösung des Problems

Die Lösung des Problems ist recht einfach und so habe ich es auch bei dem Relaunch von Faszination Tolkien gemacht. Ich habe mich der Hilfe der benutzerdefinierten Felder bedient. Die Template-Dateien, die für die Ausgabe der Seiten zuständig sind, also page.php und die Seiten-Templates, habe ich folgendermaßen angepasst:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <?php $alternativ_titel = get_post_meta($post->ID, 'alternativ_titel', true);
    if ($alternativ_titel) { ?>
    <h2 class="storytitle"><?php echo $alternativ_titel; ?></h2>
    <?php } else { ?>
    <h2 class="storytitle"><?php the_title(); ?></h2>
    <?php } ?>

Der Code bewirkt folgendes: wurde der benutzerdefinierte Feld “alternativ_titel” gesetzt bzw. mit einem Wert belegt, dann wird im Frontend nicht die “normale” Überschrift ausgegeben sondern der Inhalt des benutzerdefinierten Feldes. Der Titel bzw. die Hauptüberschrift ist zwar für den Besucher unsichtbar, aber im System dennoch vorhanden und für die automatische Ausgabe der Pages (z. B. via wp_list_pages();) verfügbar.

Also einfach bei Bedarf, den kürzeren Titel da eintragen, wo man es immer macht:

WordPress: kurzer Titel
Die kurze Hauptüberschrift

Und die längere, aussagekräftigere Überschrift im benutzerdefinierten Feld:

WordPress: längerer Titel
Die längere Überschrift

Und das Ergebnis schaut dann so wie in der folgenden Abbildung aus:

WordPress: unterschiedliche Titel
Das Ergebnis unterschiedlicher Hauptüberschriften

Wir arbeiten seit 20 Jahren mit WordPress und bieten diverse Dienst­leistungen rund um das System an. Kontaktiere uns für weitere Informationen oder für ein Angebot.

Verwandte Beiträge:

3 Kommentare

  1. Erst mal danke für diesen COde, genau das was ich gesucht habe und es funktioniert wie beschrieben. Hab ihn direkt eingebaut und alles sah super aus.

    Leider sorgt dieser code nun (einige stunden danach) bei mir dafür, dass die Sidebar nun am ende der seite eingefügt wird.Hast du vielleicht eine Idee woran es liegen könnte?

  2. Klasse Idee, mich würde allerdings noch eine Ergänzung interessieren: Eine Art Zufallsgenerator, der zwischen der “richtigen” Überschrift und der Meta-Angabe (gerne auch von mehreren Feldern) switcht.

  3. Vielen, vielen Dank für diesen Tipp. Da ich fast nur statische Seiten mit WP bauen, hat mich das schon lange gestört. Hinzu kommt, dass auch gar nicht alle Templates die benutzerdefinierten Menüs zulassen, sodass ich bei meinen Lieblingstemplates in den saueren Apfel gebissen habe und immer kurze Überschriften gesetzt habe, damit auch der Menüpunkt nicht zu ausladend ist. Mit einem Copy&Paste ist das ganze jetzt endlich erledigt und ich kann alternative Seitenüberschriften vergeben. Juhuu! Ihr seid super!

Kommentare sind geschlossen.