*

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