WordPress.org
Top
More Information #More Information
Page template in subdirectory #Page template in subdirectory
Se il page template si trova in una sottodirectory del tema (da WP 3.4), anteponi il nome della cartella e una barra al nome del file del template, ad esempio:
is_page_template( 'templates/about.php' );
Top
Cannot Be Used Inside The Loop #Cannot Be Used Inside The Loop
A causa della sovrascrittura di alcune variabili globali durante The Loop is_page_template()
non funziona. Per usarlo dopo il Loop devi chiamare wp_reset_query() dopo il Loop.
Alternativa #Alternative
Siccome lo slug del template di pagina è memorizzato all’interno del post_meta per ogni post che è stato assegnato a un template di pagina, è possibile interrogare direttamente il post_meta per vedere se a una data pagina è stato assegnato un template di pagina. Questo è il metodo che is_page_template() usa internamente.
La funzione get_page_template_slug( $post_id ) restituirà lo slug del modello di pagina attualmente assegnato (o una stringa vuota se nessun modello è stato assegnato – o false se $post_id non corrisponde a una pagina attuale). Si può facilmente usare ovunque (in The Loop, o fuori) per determinare se a qualsiasi pagina è stato assegnato un modello di pagina.
// 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. }