Uhm … OK. Bei Deiner Frage geht es für meinen Geschmack etwas durcheinander, speziell was die Templates angeht. Deshalb ein kleiner Schlenker zum Thema „Template-Hierarchy“.
Ruft ein Anwender eine Link einer WordPress-Website in seinem Browser auf, wird zunächst geprüft, um welche Art von Inhalten es sich handelt: Startseite? Einzelne Seite? Eine Seite mit mehreren Bloge-Beiträgen? Ein einzelner Blogbeitrag? Eine Suche? Ein Archiv … es gibt noch eine Reihe weiterer Fälle und für jeden kann man eine indivduelle Vorlage (Template) vorsehen. WordPress pickt jeweils das passende Template heraus. Gibt es kein spezielles Template, verwendet WordPress allgemeiner gehaltene Templates, zuletzt die index.php. Einen Plan aller Templates findest Du unter https://developer.wordpress.org/files/2014/10/wp-template-hierarchy.jpg.
Wenn Du Blog-Beiträge gefunden hast, die nun empfehlen, eine Tag-Beschreibung z.B. in einem Template tag-skandinavien.php unterzubringen, wird diese Beschreibung auch nur angezeigt, wenn das Schlagwort-Archiv „Skandinavien“ aufgerufen wird. Ich vermute aber, dass Du generell bei einer Auflistung von Blogbeiträgen eine Tag-Beschreibung ausgeben möchtest? Dann wäre das Template tag-skandinavien.php oder das allgemeinere archive.php schonmal zu speziell.
WordPress verwendet zur Darstellung einer Liste von Blogbeiträgen die so genannte Loop, also eine Schleife die abfragt ob Beiträge vorliegen. Wenn ja, werden die Blogbeiträge mit WordPress-Tags wie the_content()
ausgegeben. Das PHP-Objekt $post enthält auch die ID’s der verwendeten Tags. D.h., Du könntest innerhalb der Loop auch die Beschreibung zu jedem verwendeten Tag ausgeben (was sich dann ggf. dutzendfach wiederholt, wenn das Tag mehrfach verwendet wird). Der Code zur Ausgabe der Tag-Description zu jedem Blogbeitrag könnte dann z.B. so aussehen:
<?php
$posttags = get_the_tags();
if ($posttags) {
foreach($posttags as $tag) {
echo '<p><strong>' . $tag->name . '</strong>: ';
echo $tag->description . </p>;
}
}
?>
Die Frage, wo dieser Code hingehört, hat Dir der Autor deines Themes bereits (in etwa) verraten: Er verwendet ein Template loop.php
, das vermutlich über die Funktion get_template_part()
von mehreren Templates verwendet wird. Ob Du den o.g. PHP-Code über oder unter die Ausgabe des Inhalts packst, hängt dann von Deinen individuellen Wünschen ab. Hauptsache, er ist in der Loop, sofern die Tag-Beschreibung für jeden Beitrag wiederholt werden soll.
Möchtest Du die Beschreibung nur einmal ausgeben, musst Du zunächst das passende Template raussuchen (Tipp: mit dem Plugin „What the File“ kannst du sehr schön prüfen, welche Templates für welche Seiten verwendet werden) und dann ober- oder unterhalb der Loop (bzw. der Funktion get_template_part(), die die Loop aufruft) z.B. folgendes hinzufügen:
$tags = get_tags();
$html = '<div class="post_tags">';
foreach ( $tags as $tag ) {
$tag_link = get_tag_link( $tag->term_id );
$html .= "<a href='$tag_link' title='$tag->name Tag' class='$tag->slug'>";
$html .= "$tag->name</a>: ";
$html .= "$tag->description;
}
$html .= '</div>';
echo $html;
Bei diesem Code werden übrigens die Beschreibungen aller Tags ausgegeben – dafür die foreach
-Schleife. Willst Du tatsächlich nur für ein ganz bestimmtes Schlagwort die Beschreibung ausgeben, kannst Du tatsächlich die Funktion tag_description()
mit der ID des Schlagworts verwenden. Also z.B.
<?php
//Beschreibung des Schlagworts mit ID 28
echo 'Tag Description: ' . tag_description('28');
?>