Articles

WordPress.org

Top

Más información #Más información

Plantilla de página en subdirectorio #Plantilla de página en subdirectorio

Si la plantilla de página se encuentra en un subdirectorio del tema (desde WP 3.4), anteponga el nombre de la carpeta y una barra al nombre del archivo de la plantilla, por ejemplo:

is_page_template( 'templates/about.php' );

Top

No se puede usar dentro del bucle #No se puede usar dentro del bucle

Debido a que ciertas variables globales se sobrescriben durante el bucle is_page_template() no funcionará. Para utilizarlo después de El Bucle debe llamar a wp_reset_query() después de El Bucle.

Alternativa #Alternativa

Dado que el slug de la plantilla de página se almacena dentro del post_meta para cualquier post que haya sido asignado a una plantilla de página, es posible consultar directamente el post_meta para ver si cualquier página dada ha sido asignada a una plantilla de página. Este es el método que is_page_template() utiliza internamente.

La función get_page_template_slug( $post_id ) devolverá el slug de la plantilla de página actualmente asignada (o una cadena vacía si no se ha asignado ninguna plantilla – o false si el $post_id no corresponde a una página real). Puede usar esto fácilmente en cualquier lugar (en El Bucle, o fuera de él) para determinar si alguna página tiene asignada una plantilla 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. }