Ändern Sie die Vorlage, wenn das Tag ausgewählt ist

Ich habe den folgenden Code, der die Seitenvorlage ändert, wenn ‘Street-Style’ aus den Kategorien ausgewählt wird.

Ich möchte dies jedoch in das Tag “Straße” ändern. Ich habe derzeit:

function get_custom_cat_template($single_template) { global $post; if ( in_category( 'street-style' )) { $single_template = dirname( __FILE__ ) . '/street-gallery.php'; } return $single_template; } add_filter( 'single_template', 'get_custom_cat_template' ) ; 

Wenn ich in_category in is_tag , passiert nichts. Ist das nicht möglich, oder mache ich das falsch?

Solutions Collecting From Web of "Ändern Sie die Vorlage, wenn das Tag ausgewählt ist"

Ich denke, die function, nach der Sie suchen, ist has_tag() oder noch allgemeiner has_term() .

Ihre function würde dann werden:

 function get_custom_cat_template($single_template) { global $post; if ( has_tag( 'street' )) { $single_template = dirname( __FILE__ ) . '/street-gallery.php'; } return $single_template; } add_filter( 'single_template', 'get_custom_cat_template' ) ; 

Mit der function is_tag() wird ermittelt, ob eine Tag-Archivseite angezeigt wird und nicht, ob ein Post ein bestimmtes Tag hat.

Was Sie suchen, ist die function has_term( $term, $taxonomy, $post ) .

Sie können diese function für jede Taxonomie verwenden, auch für benutzerdefinierte Taxonomien. Ihr Code würde folgendermaßen aussehen:

 function get_custom_cat_template($single_template) { global $post; if ( has_term( 'street-style', 'post_tag', $post ) ) { // please also check just "tag" if post_tag does not work. $single_template = dirname( __FILE__ ) . '/street-gallery.php'; } return $single_template; } add_filter( 'single_template', 'get_custom_cat_template' ) ;