Linknamen und Überschriften in WordPress-Pages

Im WordPress-Forum von XING wurde die Frage diskutiert, wie man die Überschriften unabhängig von den Titeln formulieren kann. Sie werden in den Standard-Themes gleichzeitig als Linknamen in der Navigation für stabile Seiten eingesetzt. Das ist nicht immer wünschenswert, möchte man sich doch in einer Überschrift gerne auch mal treffender, umfassender oder auch mal blumiger ausdrücken.

Versuch 1: URL-Namen als Linknamen

Um diesem Phänomen mehr Flexibilität abzutrotzen, kam ich zunächst auf die Idee, die editierbare Eingabe bei sprechenden URLs (Eingabefeld Titelform) zu nutzen. Missbrauch von Daten liegt hier eher nicht vor, denn sowohl die URL-Bezeichnung als auch der Linkname schreien nach Kürze und Würze. Aber abgesehen von den umständlich zu pflegenden Anpassungen, die im Kern notwendig wären, werden Linknamen immer nur mit Kleinbuchstaben ausgegeben. Also kein Lösungsansatz.

Möglichkeit 1: Via Editorfeld

Eine mögliche Lösung besteht darin, die Überschrift im Editorfeld von Hand einzugeben, als h1 oder h2, wie es eben vom Seitenaufbau her gewünscht wird. Damit man keine unerwünschten Doppelungen hat, muss man anschließend noch die Auszeichnung löschen, die für die Ausgabe des Titels als Überschrift sorgt. In der index.php des default-Themes ist das die Zeile 10:

<h2><a href=”<?php the_permalink() ?>” rel=”bookmark” title=”Permanent Link to <?php the_title_attribute(); ?>”><?php the_title(); ?></a></h2>

Möglichkeit 2: Mit benutzerdefiniertem Feld

Die zweite Möglichkeit bietet sich durch den Einsatz eines benutzerdefinierten Feldes. Dieses ist frei editierbar. Man legt zunächst den Schlüsselbegriff an, zum Beispiel pagetitle. Im Feld für den Wert gibt man dann den Überschriftentext ein.

Zum Schluss muss man noch dafür sorgen, dass diese Überschrift auch ausgegeben wird, beispielsweise im Template page.php. Dort wird die Implementierung des Titles wie oben gelöscht und stattdessen folgender Snippet eingefügt:
<h1><?php $values = get_post_custom_values("pagetitle");
if (isset($values[0])) {
echo get_post_meta($post->ID, pagetitle, true);
} ?></h1>

Ein Kommentar

Schreibe einen Kommentar

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