Blanzelot Kreativproduktion

Themenmarken im WP-title in Post-Listen, Facebook und Twitter

Zeitungsausschnitt

Zuweilen bietet sich aus Content oder Layout-Gründen an, den Text der Hauptüberschrift von Blogposts mit einer Themenmarke oder einer Grafik zu ergänzen. Diese Text-/Bild-Technik kommt zum Einsatz, wenn eine Redaktion en passant dem Leser z.B. die Textgattung, eine Veranstaltung oder den subjektiven Charakter eines Inhaltes anzeigt. In diesem Post erkennt man dieses Prinzip an der Themenmarke „WordPress“. Ein besonders komplexes Exemplar dieser Spezies zeigt die Abbildung, wo die Textgattung „Kommentar“ zusätzlich durch Autorinnen-Name und -Foto verstärkt wurde, bevor die Hauptüberschrift beginnt.

Semantische Aspekte

Semantisch und strukturell ist es ungünstig, über benutzerdefinierte Felder oder dergleichen die Themenmarke vor dem Quellcode der Überschrift zu platzieren, die man üblicherweise mit <h1> auszeichnet, um so auch den Beginn des Artikels anzuzeigen. Ergo sollte die Themenmarke Teil dieser h1-Überschrift werden. Für eine Layout-Anpassungen oder auch für die Abbildung der Inhaltsstruktur muss man die Themenmarke, Bilder oder ähnliches mit geeignetem (X)HTML4(/5) auszeichnen. Obwohl dies systemseitig keine Probleme bereitet, hat das Einfügen in das title-Feld mehrere Nachteile:

Schirmschüsse zur Illustration:

  • Der Inhalt des title-Feldes ist in der Regel nicht mehr vollständig sichtbar
  • Der Quellcode wird auch in der Übersichtsliste der Admin angezeigt und sorgt für Unübersichtlichkeit
  • In Plugin- oder Standard-Übersichtlisten wie Kategorienanzeige, related Posts, letzte Artikel, eigene queries oder ähnlichem werden diese Zusätze auch ausgegeben, obwohl sie dort unerwünscht sein können.
  • Zusätzliche Inhalte werden auch an den RSS-Feed, an Newsletter und an Facebook- bzw. Twitter-Aggregatoren wie RSS-Graffitiy oder Networkedblogs ausgeliefert.

Wer in der Admin damit leben kann, wird auch auf Ausblendungen in den anderen internen Ausgaben des titles einfach sein CSS mit einem display:none; ausstatten. Im RSS-Feed und damit auch beim Import in Facebook, Twitter & Co. ist jedoch keine Einflussnahme möglich. Um Themenmarke(n) und title unabhängig voneinander ausgeben zu können, gibt es mehrere Möglichkeiten:

A. Überschrift und Themenmarke in den Content einbinden

In der single.php des Themes werden title und content in der Regel getrennt voneinander ausgegeben. Man hat nun die Möglichkeit, die Zeile <h1><?php the_title() ?></h1> zu löschen und den gewünschten Inhalt samt Markup für die Themenmarke im Editor einzugeben und via <?php the_content() ?> an den Endverbraucher zu geben. Dies hat aber zwei Nachteile:

  1. Man muss Inhalt doppelt einpflegen
  2. Bei Umbauten müssen ältere Blogposts nachgepflegt werden oder es wird keine h1-Überschrift mehr ausgegeben

B. Mit Conditional Tags arbeiten

Wer in der Themenmarke nur Text hat und alle Artikel zum Schlagwort „WordPress“ mit einer gleichlautenden Themenmarke ausstatten will, kann man das mit einem Conditional Tag automatisieren:

<h1><?php if (has_tag('6')) { ?><span class="themenmarke">WordPress</span><?php } ?><?php the_title(); ?></h1></code>

Alternativ für Kategorien kann man auch mit dem Conditional Tag in_category() arbeiten. Nachteil: Diese Methoden sind nur geeignet, wenn man genau wortgleich markieren will und auch keine Grafiken in die Themenmarke sollen.

C. Custom Fields einsetzen

Die meisten Möglichkeiten bietet der Einsatz eines Custom Fields, das man in der Eingabemaske jedes Posts frei anlegen kann: Custom Field mit Name und dazugehörigem Wert
Im Theme muss man dann innerhalb des Loops den Wert abrufen. Zusätzlich kann man eine Abfrage einbauen, die nur dann etwas ausgibt, wenn ein Wet eingegeben wurde:

<?php $themenmarke = get_post_meta($post->ID, 'themenmarke', true); ?>
<h1><?php if($themenmarke !== '') { ?><span class="themenmarke"><?php echo $themenmarke; ?></span><?php } ?><?php the_title(); ?></h1>

Wer auf die HTML-Klopperei verzichten oder Text und Grafiken trennen möchte, kann den Output so verfeinern, dass man in das Custom-Field nur noch den Text oder den Dateinamen des Bildes eingeben muss.