Articles

WordPress.org

Top

More Information #More Information

Page template in subdirectory #Page template in subdirectory

Wenn sich die Seitenvorlage in einem Unterverzeichnis des Themes befindet (seit WP 3.4), stellen Sie den Ordnernamen und einen Schrägstrich vor den Dateinamen der Vorlage, z. B.:

is_page_template( 'templates/about.php' );

Top

Kann nicht innerhalb der Schleife verwendet werden #Kann nicht innerhalb der Schleife verwendet werden

Da bestimmte globale Variablen während der Schleife überschrieben werden, funktioniert is_page_template() nicht. Um sie nach der Schleife zu verwenden, müssen Sie wp_reset_query() nach der Schleife aufrufen.

Alternative #Alternative

Da der Slug der Seitenvorlage in der post_meta für jeden Beitrag gespeichert wird, der einer Seitenvorlage zugewiesen wurde, ist es möglich, die post_meta direkt abzufragen, um zu sehen, ob einer bestimmten Seite eine Seitenvorlage zugewiesen wurde. Dies ist die Methode, die is_page_template() intern verwendet.

Die Funktion get_page_template_slug( $post_id ) gibt den Slug der aktuell zugewiesenen Seitenvorlage zurück (oder einen leeren String, wenn keine Vorlage zugewiesen wurde – oder false, wenn die $post_id keiner aktuellen Seite entspricht). Sie können diese Funktion überall verwenden (in der Schleife oder außerhalb), um festzustellen, ob einer Seite eine Seitenvorlage zugewiesen wurde.

 // in the loop: if ( get_page_template_slug( get_the_ID() ) ){ // Yep, this page has a page template } // anywhere: if ( get_page_template_slug( $some_post_ID ) ){ // Uh-huh. }