Cuando queremos adaptar un tema de WordPress, si no realizamos los cambios correctamente corremos el riesgo de en algún momento querer actualizar el tema y no poder por que perderemos las modificaciones realizadas. Por ejemplo, si modificamos el style.css de nuestro tema cuando lo actualizemos este será “machacado” en el update perdiendo los cambios y volviendo al estilo original del theme.
Child themes
Para poder actualizar el tema sin perder nuestros cambios el camino a seguir pasa por los Child themes, que nos permitirán customizar el tema igualmente sin hacer modificaciones directamente en este y no perder los cambios al hacer un update.
Para crear un child theme lo primero que necesitamos es un tema principal instalado. Pongamos por ejemplo el Twenty Eleven.
Seguidamente crearemos una carpeta en nuestros temas y le incluiremos un style.css.
Para que WordPress lo entienda como un child theme deberemos añadir al style.css el header:
/* Theme Name: Child Theme Twenty Eleven Description: Child theme para modificaciones en el Twenty Eleven Author: Adrenalina Author URI: http: //adrenalina.es/ Template: twentyeleven Version: 0.1 */
Las líneas imprescindibles son las del nombre del tema y la del template, que indica de que tema heredamos y que deberemos escribir con el mismo nombre que la carpeta del tema padre, es decir sin mayúsculas ni espacios.
Nuestro site usará el style.css de nuestro Child theme, así que es aconsejable añadir a nuestro archivo:
@import url("../twentyeleven/style.css");
Con esta línea, importaremos la hoja de estilo del Twenty Eleven, así cualquier línea de código que introduzcamos se “sumará” a la importada. Importante, esta línea de código debe ir situada después del código header y antes de cualquier línea de código css o de lo contrario no funcionará.
No os olvideis de activar el Child theme en el dashboard.
Templates
A pesar de que podemos realizar la mayor parte de las modificaciones en css y en el functions.php, hay veces en las que nos interesará modificar el template para obtener un buen resultado. Para hacerlo, nunca modificaremos el template del tema y aprovecharemos nuestro Child theme.
Es importante saber que cualquier archivo del child theme con el mismo nombre que un archivo del parent theme lo substituirá. Así, para personalizar nuestro tema deberemos copiar el archivo que queremos modificar en la carpeta del Child theme y ya le podremos hacer las modificaciones deseadas, sin miedo a futuras actualizaciones del tema.
Para crear un nuevo template bastará con añadir al principio del archivo:
<?php /* Template Name: Nuevo Template */ ?>
Con esto informaremos a WordPress que este es un template de página y nos permitirá seleccionarlo al editar una página. Y ya podremos introducir nuestro código
Functions.php
Como comentábamos los archivos del Child theme con el mismo nombre substituyen a los del parent theme. Sin embargo, el functions.php es una excepción, ya que éste sera cargado addicionalmente al del tema padre. Por tanto, no es necesario copiar el functions.php del Twenty Eleven en el functions del Child theme.
Los desarrolladores podemos aprovechar la particularidad que el functions.php del Child Theme se carga antes que el del tema padre para introducir cambios en las funciones y adaptarlas.
if ( ! function_exists( 'theme_special_nav' ) ) { function theme_special_nav() { // Do something. } }
Espero haberos ayudado a personalizar vuestros temas sin miedo a posteriores actualizaciones.
Muy buen articulo me saco de muchas dudas con respecto a los child theme .
En que archivo modifico el icono principal?
Gracias por el comentario!