Estructura de un tema
Un tema se compone de un conjunto de archivos que definen la capa de presentación del sitio. De los archivos que contiene, sólo uno de ellos es obligatorio, el archivo .info, donde se incluye la definición del tema y algunas opciones de configuración general.
Los temas también pueden contener subtemas, que heredarán las plantillas y estilos del tema principal pero en los que podremos realizar modificaciones, construyendo así variantes con respecto al tema padre. Existen temas especiales, llamados temas base, que aportan la base funcional y estructural para construir nuevos temas sin tener que empezar desde cero. Construiremos así nuevos temas que serán en realidad un subtema de un tema base.
En el gráfico siguiente se muestra la estructura típica de archivos de un tema. Como hemos indicado, sólo el archivo .info es obligatorio, tanto en los temas como en los subtemas. El resto de archivos podrán estar presentes o no en el tema instalado, sin que esto afecte al funcionamiento del sitio.
Comentamos a continuación para qué sirven los distintos archivos del tema:
- Archivo de definición (.info). El archivo .info almacena la definición del tema, y se trata de un archivo obligatorio. Este archivo guarda información sobre las regiones disponibles, los archivos CSS y javascript, etc. El nombre del archivo .info define el nombre interno del tema, y suele estar contenido en una carpeta de mismo nombre. Por ejemplo, en la carpeta example encontraremos el archivo example.info. El nombre interno del tema será example. Como hemos comentado, no es obligatorio que el nombre de la carpeta se corresponda con el nombre interno del tema, pero sí recomendable. El archivo .info es un archivo de texto que puede ser editado con cualquier editor de textos.
- Archivos de plantilla (.tpl.php). Los archivos tpl (template o plantilla) son los archivos que definen la estructura del tema. Los archivos de plantilla contienen código HTML y variables PHP, que serán sustituidas por sus valores correspondientes al presentar el contenido de la página. Cada archivo de plantilla se encargará de generar la salida HTML de un elemento del sitio. Por ejemplo, el archivo comment.tpl.php incluirá el código de salida de los comentarios del sitio. Los archivos de plantilla pueden estar directamente en la carpeta del tema o en un subdirectorio que se suele llamar templates, para su mejor organización. Los archivos de plantilla son archivos de texto que pueden ser editados con cualquier editor de textos.
- Archivo template.php. Como estudiaremos en el nivel avanzado, el archivo template.php permite añadir lógica adicional de programación para obtener el valor final de las variables que se presentarán en las plantillas (este proceso se conoce como preprocesamiento de variables). Este preprocesamiento permite mantener limpios de lógica los archivos de plantilla, que se encargarán únicamente de imprimir los valores finales de las variables.
- Archivos de estilos (style.css y otros archivos .css). El archivo principal que contiene los estilos se denomina style.css. No se trata de un archivo obligatorio, sino únicamente de una práctica común. Pueden existir otros archivos .css, e incluso estar contenidos en una carpeta css para una mejor organización. Las hojas de estilo .css son archivos de texto que pueden ser editados con cualquier editor de textos.
- Carpeta images. Contiene las imágenes del tema. Podemos modificar las imágenes existentes o añadir nuevas imágenes, en cuyo caso habrá que referenciarlas correctamente desde la hoja de estilos CSS.