Titel für Kategorie-, Tag-, Term-, Datum- und Suchbegriff(e)-Ansichten in WordPress wiedergeben

files 1633406 1920
Bildquelle: Pixabay, creativesignature

Nachtrag 15.02.2016

Seit WordPress 4.1 kümmert sich darum eine einzige Funktion

the_archive_title( '<h1 class="archive-title">', '</h1>' );

Sie gibt <a href="https://developer.wordpress.org/reference/functions/get_the_archive_title/" target="_blank">get_the_archive_title()</a> aus.

Der Rest ist Geschichte.

Wenn sich Templates nur in kleinen Details unterscheiden, wie beispielsweise dem Titel (Kategorie, Term, Tag etc.), und daher nur eine index.php (und eventuell noch archive.php) vorgesehen ist, erhält man die Titel der unterschiedlichen Archivansichten wie folgt (in den Templates die in der Hierarchie zuerst geladen würden, erübrigt sich die Abfrage der Bedingung – z.B. ist category.php bereits die Antwort auf die Frage if ( is_category() )).

Term, Kategorie, Tag und Posttype

$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); 
if ( $term ) printf( __( '<h1 class="archive-title">Taxonomy Term: <span>%1$s</span></h1>' , 'textdomain' ) , single_term_title( '', false ) );
if ( is_category() ) printf( __( '<h1 class="archive-title">Category: <span>%1$s</span></h1>' , 'textdomain' ) , single_cat_title( '', false ) );
if ( is_tag() ) printf( __( '<h1 class="archive-title">Tag: <span>%1$s</span></h1>' , 'textdomain' ) , single_tag_title( '', false ) );
if ( is_post_type_archive() ) printf( __( '<h1 class="archive-title">Post Type: <span>%1$s</span></h1>' , 'textdomain' ) , post_type_archive_title( '', false ) );

Suchstring als Titel

Wenn es keine search.php gibt, wird unter der Bedingung is_search() im Gegensatz zu oben angeführten Titeln nicht archive.php sondern index.php angesteuert.

if ( is_search() )  printf( __( '<h1 class="archive-title">Search Results: <span>%1$s</span></h1>' , 'textdomain' ) , get_search_query() );

Zeitbasierte Archive

if ( is_day() ) : 
	printf( __( '<h1 class="archive-title">Date: <span>%s</span></h1>', 'textdomain' ) , get_the_date() );
elseif ( is_month() ) : 
	printf( __( '<h1 class="archive-title">Month: <span>%s</span></h1>', 'textdomain' ) , get_the_date( _x( 'F Y', 'monthly archives date format', 'textdomain' ) ) ); 
elseif ( is_year() ) : 
	printf( __( '<h1 class="archive-title">Year: <span>%s</span></h1>', 'textdomain' ) , get_the_date( _x( 'Y', 'yearly archives date format', 'textdomain' ) ) ); 
endif;

Bitte Kommentarfunktion nicht für Supportanfragen nutzen. Dem kann hier nicht entsprochen werden. Die Angabe einer E-Mail-Adresse und eines Namens ist nicht erforderlich. Einen (Spitz)-Namen zu nennen wäre aber doch nett.

Schreibe einen Kommentar

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

Hinweis: Sowohl angegebener Name als auch E-Mail-Adresse (beides ist optional, dafür werden alle Kommentare vor Veröffentlichung geprüft) werden dauerhaft gespeichert. Du kannst jeder Zeit die Löschung Deiner Daten oder / und Kommentare einfordern, direkt über dieses Formular (wird nicht veröffentlicht, und im Anschluss gelöscht), und ich werde das umgehend erledigen. – Mit hinterlassenen Kommentaren hinterlegte IP-Adressen werden nach zwei Monaten automatisch gelöscht

publicly queryable