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;
Schreibe einen Kommentar