WordPress: Überschriften mit Untertiteln
In vielen Zeitungen ist es üblich, unter die eigentliche Überschrift noch einen Untertitel zu setzen, um den folgenden Titel näher zu erläutern:

Durch diese Untertitel kann man den eigentlichen Titel etwas kreativer gestalten und anschließend erläutern. Leider bietet WordPress von Haus aus diese Funktion nicht an und so muss sie nachgerüstet werden. Als ersten Reflex würde der geneigte Programmierer eine Lösung per Plugin versuchen, allerdings gibt s auch eine Lösungmit Bordmitteln. Die Zauberworte lauten „Benutzerdefinierte Felder“ (engl. „custom fields“).
Um ein benutzerdefiniertes Feld zu erstellen geht man zur entsprechenden Box und erstellt unter „Ein neues benutzerdefiniertes Feld hinzufügen:“ ein neues Feld „untertitel„:

… und gibt den gewünschten Untertitel an. Auf der Seite des Autoren war dies schon alles. Natürlich müssen die Templates des benutzten Themes angepasst werden, damit die Untertitel auch an den enstsprechenden Stellen angezeigt werden. Dies erfordert etwas Handarbeit an den Dateien index.php, singel.php und evtl. header.php. Ich möchte die Änderungen exemplarisch am Default-Theme darstellen.
index.php
Die Datei index.php ist für die Ausgabe der (umgekehrt) chronologischen Artikel zuständig.
Folgende Zeilen stellen die Überschrift dar:
15 16 17 18 | <div <?php post_class() ?> id="post-< ?php the_ID(); ?>"> <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to < ?php the_title_attribute(); ?>">< ?php the_title(); ?></a></h2> <small>< ?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></small> </div> |
Hier fügen wir die folgenden Zeilen ein (Zeilen 18-23):
15 16 17 18 19 20 21 22 23 24 25 26 | <div <?php post_class() ?> id="post-< ?php the_ID(); ?>"> <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to < ?php the_title_attribute(); ?>">< ?php the_title(); ?></a></h2> <div class="subtitle"> < ?php $subtitle = get_post_meta($post->ID, 'untertitel', $single = true); if($subtitle !== '') echo $subtitle; ?> </div> <small>< ?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></small> </div> |
Das Ergebnis:

Anpassen des Stylesheets
Schlussendlich muss noch das Stylesheet angepasst werden. Denn das obige Beispiel sieht nicht wirklich schön aus, doch durch eine einfache CSS-Definition in der style.css kann man das leicht ändern.
.subtitle { font-weight: bold; }
Jetzt noch das Datum entfernen, indem man Zeile 25 (s.o.) löscht:

Obwohl dieses Beispiel sehr einfach gestaltet ist, sieht es doch schon sehr gefällig aus und mit etwas Designarbeit wird man ein wesentlich besseres Ergebnis erzielen können.
Weitere Templates ändern
single.php
Die Datei single.php ist für die Darstellung eines einzelnen Artikels zuständig. Zunächst ändern wir das die Datei entsprechend dem obigen Beispiel ab:
19 20 21 22 23 24 25 26 27 28 29 30 31 | <div <?php post_class() ?> id="post-< ?php the_ID(); ?>"> <h2>< ?php the_title(); ?></h2> <div class="subtitle"> < ?php $subtitle = get_post_meta($post->ID, 'untertitel', $single = true); if($subtitle !== '') echo $subtitle; ?> </div> <div class="entry"> < ?php the_content('<p class="serif">Read the rest of this entry »'); ?> </div></div> |
Somit sieht die Darstellung hier genauso aus, wie auf der Hauptseite. Allerdings wird der Untertitel nicht im Titel des Browsers angezeigt:

Um dies zu ändern, muss die Datei header.php angepasst werden. Bisher sieht die Zeile zur Anzeige des Browsertitels so aus:
13 | <title>< ?php wp_title('«', true, 'right'); ?> < ?php bloginfo('name'); ?></title> |
Hier wird der Code für den Untertitel eingefügt. Das Ergebnis könnte folgendermaßen aussehen:
13 14 15 16 17 18 19 | <title> < ?php wp_title(''); $subtitle = get_post_meta($post->ID, 'untertitel', $single = true); if ($subtitle !== '') echo ': ' . $subtitle; ?> « < ?php bloginfo('name'); ?> </title> |
… und im Browser so:

Update: In diesem Artikel habe ich beschrieben, wie man den Untertitel auch im Feed unterbringt.
(Dieser Artikel basiert einer Idee aus dem Blog-Post Using WordPress Custom Fields: Subtitles von Justin Tadlock)




Die Vorgehensweise an sich ist gut, aber den Output würde ich anders gestalten. Je nach Geschmack gäbe es da 2 Möglichkeiten:
1. den Untertittel innerhalb der Überschrift in ein Span packen und das span via CSS gestalten (display:block, kleiner, fett etc.)
Ergebnis etwa: h2 Hauptüberschrift span Unterüberschrift /span /h2
oder
2. für den Untertitel hx verwenden.
Ergebnis etwa: h2 Hauptüberschrift /h2 h3 Unterüberschrift /h3 Nochwas zu H2; Meiner Meinung (bzw handhabe ich das so) nach sollte man im Template abfragen, ob Überschrift auf Übersichtsseite oder einzeln ist. Wenn einzeln (Artikel), dann H1, sonst H2…
Da hast Du natürlich recht. Der Artikel soll auch nur als Anregung dienen und z.B. zu Verbesserungen wie Deiner führen.
Untertitel für die WordPress Blogartikel und Feeds…
Piet schrieb die Woche über ein sehr interessantes Plugin, mit welchem man seine Blogartikel mit Untertiteln versehen kann. Aber nicht nur für die Blogartikel gibt es Untertitel, sondern auch die Option diese in den Feeds mit anzeigen zu lassen. Da ich…
[…] für mich ja gerne “ohne Plugins” Lösungen implementiere, gab mir Piet auch gleich den Link zum Artikel von Elektrokelch, auf dem die Implementierung der Untertitel ohne Plugin (via benutzerdefinierten Feldern) […]
Hallo,
wie kann ich es steuern, dass die Unertitel unter den Menüpunkten der Hauptnavigation stehen?