Articles

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. }