Uso de condicionales en Plantillas de p√°gina de WordPress

Se pueden realizar cambios espec√≠ficos del fichero ‘page.php’ con condicionales. Por ejemplo, el c√≥digo de ejemplo carga el archivo de header-home.php para la portada, pero carga otro archivo ( header-about.php ) para la p√°gina ‘Acerca de’, y luego se aplica el valor por defecto ‘header.php’ para todas las dem√°s p√°ginas.

if ( is_front_page() ) :
 get_header( 'home' );
 elseif ( is_page( 'About' ) ) :
 get_header( 'about' );
 else:
 get_header();
 endif;

La identificación de una plantilla de página

Si su plantilla utiliza la función body_class(), WordPress imprimirá la clase en el body la etiqueta para el nombre de la clase ( page ), de la página de identificación ( page-id-{ID} ), y la plantilla de página utilizada
Para el defecto page.php , el nombre de la clase generada es page-template-default :

<body class="page page-id-6 page-template-default">

Una plantilla especializada ( page-{slug}.php o page-{ID}.php ) también recibe la clase page-template-default en lugar de su propia clase.

Cuando se utiliza una plantilla de página personalizada, la clase page-template se imprimirá, junto con una clase de denominación de la plantilla específica. Por ejemplo, si el archivo de plantilla de página personalizada se denomina de la siguiente manera:

<?php /* Template Name: My Custom Page */ ?>

El HTML generado ser√° el siguiente:

<body class="page page-id-6 page-template page-template-my-custom-page-php">

N√≥tese que page-template-my-custom-page-php se a√Īade al body.

Funciones plantilla de p√°gina

Estas funciones y métodos de WordPress incorporadas pueden ayudarle a trabajar con plantillas de página:

  • get_page_template() devuelve la ruta de la plantilla de p√°gina utilizada para representar la p√°gina.
  • wp_get_theme()->get_page_templates() devuelve todas las plantillas de p√°gina personalizados disponibles en el tema activo ( get_page_templates() es un m√©todo de la WP_Theme clase).
  • is_page_template() devuelve verdadero o falso dependiendo de si se utiliza una plantilla de p√°gina personalizado para representar la p√°gina.
  • get_page_template_slug() devuelve el valor del campo personalizado _wp_page_template ( null cuando el valor est√° vac√≠o o ¬ędefault¬Ľ). Si una p√°gina se ha asignado una nueva plantilla, el nombre de archivo de la plantilla se almacena como el valor de un campo personalizado llamado ‘_wp_page_template’ (en la tabla wp_postmeta de la base de datos). (Los campos personalizados a partir de un gui√≥n no se muestran en el m√≥dulo de campos personalizados de la pantalla de edici√≥n.)