Formas rápidas para incluir templates

Cuando estamos fabricando un tema de WordPress, utilizamos una serie de típicos tags de PHP para incluir, alrededor del contenido principal (Loop), distintos elementos esenciales, como por ejemplo:

<?php get_header(); ?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

El tener separados estos tres archivos, que tratan los distintos espacios gráficos y funcionales del blog (encabezado, pie de página, barra lateral…), nos servirá para tenerlos bien accesibles cuando necesitemos editar alguno de ellos.

Ahora bien, si los tres tags señalados son usualmente suficientes, a veces necesitamos incluir archivos de template especiales, con un nombre único, puesto por nosotros. Por ejemplo: un script de Google Ads que debería aparecer en los archivos y el template de artículo, pero no en el índice.

Para incluír templates especiales, PHP dispone de una fórmula que podemos usar allí donde queramos :

<?php include( TEMPLATEPATH . '/nombre-del-template-a-incluir.php' ); ?>

Sin embargo, si estamos en pleno proceso de elaboración de un site complejo, existe una forma más memorable que nos permite distinguir entre templates a incluir. Es la siguiente (funciona a partir de WP 2.7):

<?php get_header('header-cine'); ?>

<?php get_sidebar('sidebar-cine'); ?>

<?php get_footer('footer-cine'); ?>

Imaginando un site que hable sobre cine y teatro, nos podría interesar tener un header especial en el apartado de teatro, y otro distinto en el de cine. Podríamos incluso querer header, sidebar y footers distintos en cada sección del site.

Para jugar con esta posibilidad, podremos añadir “tags condicionales”, como aquí :

<?php

if ( is_category('Cine') ) {

get_footer('footer-cine');

} elseif ( in_category('Cine') ) {

get_footer('footer-cine');

} else {

get_footer();

}

?>

Si el usuario llegara a un post de la categoría “Cine”, o a un archivo de la misma, el footer que mostraremos es el que se llame footer-cine.php, y, si es cualquier otra página de nuestro site en la que el internauta aterriza, tendremos el footer normal.

Comentarios
  1. Muy simple e interesante…
    Veo si lo aplico en el nuevo theme que estoy preparando para el blog.
    Gracias y saludos,
    Gabriel

    Escrito el14/01/2010
  2. Gracias @GR, saludos

    Escrito el14/01/2010
  3. Muy interesante la entrada, me servira mucho en algo que estoy pensando

    Escrito el15/01/2010

DEJA TU COMENTARIO