Dachzeilen machen es wesentlich einfacher, verständliche, kurze Überschriften zu formulieren. Ein kurzes Stichwort gibt den Rahmen für die eigentliche Überschrift. Obwohl das sehr einfach ist, sind Dachzeilen in den meisten mir bekannten Redaktionssystemen nicht vorgesehen. Für WordPress habe ich mir das jetzt nachgerüstet.
Bislang habe ich für die Dachzeilen hier auf kaffeeringe.de immer einfach die „Eigenen Felder“ genutzt. Ich habe eines „Subtitle“ genannt und das dann im Template aufgerufen. Dafür aber, dass ich inzwischen hunderte Artikel mit Dachzeilen versehen habe, war das aber immer ein Provisorium.
Das herbstliche Urlaubswetter im Urlaub hat mir die Zeit gegeben, dieses Provisorium mal permanent zu machen: Ich habe das Eingabefeld für die Dachzeile fest in das Formular für neue Beiträge eingebaut, an der richtige Stelle: Über der Überschrift. So kann ich jetzt gleich sehen, ob Dachzeile und Überschrift zusammen funktionieren.
Ich weiß, dass es dafür auch Plugins gibt. Ich bin bei meiner Lösung mit ein paar Zeilen Code ausgekommen. Dafür muss ich mir kein Plugin installieren.
1. function.php
In der function.php meines Themes habe ich zwei Funktionen eingefügt. Die erste Funktion zeigt das zusätzliche Formfeld über der Überschrift an. Die zweite Funktion speichert die Eingabe und aktualisiert das „Eigene Feld“. Der Inhalt wird also so gespeichert, dass es auch noch funktioniert, wenn ich mal das Theme wechsel. Ich könnte dann wieder einfach das Formular für die „Eigenen Felder“ nutzen.
// Subtitles function kaffeeringe17_addSubtitleToForm($post_ID) { $customfields = get_post_custom_values('subtitle', $post_id); echo '<label class="screen-reader-text" id="subtitle-prompt-text" for="subtitle">Dachzeile</label>'; echo '<input type="text" placeholder="Dachzeile" name="subtitle" spellcheck="true" size="30" value="'. esc_attr( $customfields[0] ) .'" id="subtitle" autocomplete="off" />'; } add_action( 'edit_form_top', 'kaffeeringe17_addSubtitleToForm', $post_ID); function kaffeeringe17_updateSubtitle($post_ID){ update_post_meta($post_ID, 'subtitle', trim($_POST['subtitle'])); } add_action('save_post', 'kaffeeringe17_updateSubtitle', $post_ID);
2. Templates
Im Header setze ich dann Dachzeile und Überschrift zusammen, damit der Seitentitel richtig ist:
$subtitle = get_post_meta($post->ID, 'subtitle', true); <!--?php $title = wp_title('',false); if ($title && is_single()) { $subtitle = get_post_meta($post->ID, 'subtitle', true);<br ?--> if ($subtitle) { echo $subtitle. ": "; } echo($title); } else { echo($title); } ?>
In den Templates für die index.php, die single.php und die page.php sieht es so aus, dass ich Dachzeile und Überschrift in das gleiche h2-Tag oder h3-Tag setze, die Dachzeile per span absetze und den Doppelpunkt dazwischen ausblende.
$subtitle = get_post_meta($post->ID, 'subtitle', true); <h2><a title="Link auf <?php the_title_attribute(); ?>" href="<?php the_permalink(); ?>" rel="bookmark"> <!--?php if ($subtitle) {?--><span class="subtitle"> <!--?php echo $subtitle; ?--> <span class="hide">:</span></span> <!--?php } ?--> <!--?php the_title(); ?--> </a></h2>
3. CSS
Ohne Formatierung steht dann da: „Dachzeile: Überschrift“. Das CSS macht das dann schön:
.subtitle { display: block; font-size: .7em; } .hide { display:none; }
4. Yoast SEO
Ich benutzte Yoast SEO, um meine Seite ein wenig besser verdaubar für Suchmaschinen und Social Networks zu machen. Dort kann ich einstellen, was der Seitentitel sein soll. Es ist auch möglich, die Dachzeile auszugeben. Deswegen haben ich eingetragen als Titel bei Beiträgen:
%%cf_subtitle%%: %%title%%
Das Ergebnis siehst Du im Titel Deines Browser-Tabs gerade.
4. RSS-Feed
Schön wäre es natürlich, wenn der Titel jetzt auch samt Dachzeile im RSS-Feed angezeigt würde. Sonst sind die Überschriften dort schwierig zu verstehen. Eine einfache Funktion rüstet das in der functions.php nach:
function kaffeeringe17_addSubtitleToRSSTitle($content) { global $wp_query; $postid = $wp_query->post->ID; $subtitle = get_post_meta($postid, 'subtitle', true); if($subtitle !== '') { $content = $subtitle.': '.$content; } return $content; } add_filter('the_title_rss', 'kaffeeringe17_addSubtitleToRSSTitle');
Ich hoffe, diese Lösung gefällt Dir. Wenn ja – sag es weiter:
Schreibe einen Kommentar