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