Articles

WordPress.org

Top

More Information #More Information

Modelo de página no subdiretório #Modelo de página no subdiretório

Se o modelo de página estiver localizado em um subdiretório do tema (desde o WP 3.4), prefira o nome da pasta e uma barra ao nome do arquivo do template, por exemplo:

is_page_template( 'templates/about.php' );

Top

Não pode ser usado dentro do Loop #Não pode ser usado dentro do Loop

Due a certas variáveis globais que estão sendo sobrescritas durante o Loop is_page_template() não vai funcionar. Para usá-lo depois do Loop você deve chamar wp_reset_query() depois do Loop.

Alternativa #Alternativa

Desde que o slug de modelo de página é armazenado dentro do post_meta para qualquer post que tenha sido atribuído a um modelo de página, é possível consultar diretamente o post_meta para ver se alguma página foi atribuída a um modelo de página. Este é o método que is_page_template() usa internamente.

A função get_page_template_slug( $post_id ) irá retornar a lesma do modelo de página atualmente atribuído (ou uma string vazia se nenhum modelo foi atribuído – ou falsa se o $post_id não corresponde a uma página real). Você pode facilmente usar isto em qualquer lugar (no Loop, ou fora) para determinar se alguma página foi atribuída a um modelo de página.

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