Wie weisen Sie einer Seite mit einer benutzerdefinierten Vorlage eine class zu?

Ich habe versucht, mit dem folgenden Code eine Body-class einer Seite mit einer benutzerdefinierten Vorlage zuzuweisen, aber das hat nicht funktioniert. Was ist hier falsch?

function prefix_conditional_body_class($classes) { if ( get_page_template_slug(get_the_ID()) === 'mytemplate.php' ) { $classes[] = 'mytemplate'; } return $classes; } add_filter( 'body_class', 'prefix_conditional_body_class' ); 

UPDATE 2

Die Vorlage wird der Seite mit diesem Code zugewiesen:

 function my_template_redirect() { if ( is_page('search-results') ) : // the page real name include (STYLESHEETPATH . '/search-results.php'); // the template real name exit; endif; } add_action( 'template_redirect', 'my_template_redirect' ); 

AKTUALISIEREN 1

Ich habe ein wenig die obige function geändert und jetzt funktioniert es (ersetzte get_page_template_slug(get_the_ID()) === "mytemplate.php" mit is_page( 8 ) , wobei 8 die ID der Seite ist):

 function prefix_conditional_body_class($classes) { if ( is_page( 8 ) ) { // the ID of the needed page $classes[] = 'mytemplate'; } return $classes; } add_filter( 'body_class', 'prefix_conditional_body_class' ); 

Solutions Collecting From Web of "Wie weisen Sie einer Seite mit einer benutzerdefinierten Vorlage eine class zu?"

Wenn Sie is_page(8) wird Ihr Code etwas statisch. Machen wir es mit is_page_template() so dynamisch, wie Sie es is_page_template() :

 < ?php function prefix_conditional_body_class( $classes ) { if( is_page_template('mytemplate.php') ) $classes[] = 'mytemplate'; return $classes; } add_filter( 'body_class', 'prefix_conditional_body_class' ); 

Arbeitete für mich in einem Kind-Thema mit der Vorlagendatei in der Wurzel des Kindthemas, unter Verwendung der Vorlage twentyfifteen.

Und ich weiß nicht, warum Sie eine andere class hinzufügen müssen. Wenn Sie body_class() Sie dort bereits zwei classn: page-template-mytemplate und page-template-mytemplate-php . Sie werden einzigartig sein und Sie können sie benutzen.