
¿Cómo crear un tema hijo en WordPress?
Si utilizas wordpress como CMS estarás familiarizado con la creación de temas hijo, también denominados child themes. Si no has instalado nunca un wordpress o no conoces cómo funciona este gestor de contenidos, seguramente esta información te sonará a chino, pues se trata de algo bastante específico a la hora de montar una web con WordPress.
¿Por qué crear un tema hijo o theme child en WordPress?
Básicamente porque podrás realizar personalizaciones en estructura o estilo sin que se pierdan los cambios tras una actualización del tema padre.
Pasos para crear un tema child en Worpdress
1. A través del ftp de la web, crea una carpeta dentro de wp-content/themes que se llame exactamente igual que el tema padre añadiendo -child o -hijo (recomendación de WordPress). Por ejemplo, si tu tema se llama «twentyfifteen» la carpeta deberá llamarse «twentyfifteen-child»
2. Ahora, crea e incluye en la carpeta un archivo css: «style.css» que contendrá los cambios de la hoja de estilo. Es el único requisito para crear tu tema hijo.
Puedes copiar y pegar la cabecera del style.css del tema padre y cambiar lo que quieras (Theme Name, Author, …). Los únicos requisitos son:
Incluir en la línea: Template, el nombre del tema padre (si no lo haces, te aparecerá como tema dañado). En el caso del ejemplo, el código a añadir sería:
—————————————————-
/*
…
Template: twentyfifteen
*/
—————————————————-
Además de la cabecera, lo que debe llevar este archivo de manera impepinable es la ruta donde se encuentra la hoja de estilos del tema padre, tal que así: @import url(«../nombredeltemapadre.style.css)
siguiendo con el ejemplo quedaría:
—————————————————-
@import url(«../twentyfifteen/style.css»);
—————————————————-
3. Una vez hecho esto, ya se puede activar el tema hijo en wordpress desde APARIENCIA > TEMAS
Ahora todos los cambios que quieras hacer en el css, los podrás añadir en este archivo creado, sin miedo a que se eliminen cuando el tema padre se actualice.
Cambios en arhivos php
Si además de tocar los estilos, quieres hacer cambios en otros archivos, como el header.php o el footer.php, simplemente copia el archivo a la carpeta del template-child y modifícalo. Este fichero sobreescribirá al que se encuentre en el tema padre.
El único requisito es que se siga la estructura de carpetas donde se encuentre el archivo origen. Por ejemplo, si tenemos el archivo en el temapadre/includes/functions, en el tema hijo deberás crear las mismas carpetas e incluir ahí el archivo.
Añadidos en functions.php
Si además quieres modificar el código de functions.php, crea un nuevo archivo con este nombre. A diferencia del resto de archivos php hay que partir de un archivo en blanco con las etiquetas PHP de inicio y cierre. Primero se cargará el código que pongas en él y luego el archivo origen. Debido a que no lo sobreescribe, como ocurre en el resto de casos, no copies el archivo functions.php desde el tema padre.
Poniendo el ejemplo que aparece en Codex, si se quiere añadir un favicon, el código del archivo sería algo como:
—————————————————-
<?php //Etiqueta PHP de inicio, sin ningún tipo de espacio antes de esta línea
// Funcion que queramos añadir
function favicon_link() {
echo ‘<link rel=»shortcut icon» type=»image/x-icon» href=»/favicon.ico» />’ . «\n»;
}
add_action( ‘wp_head’, ‘favicon_link’ );
?> //Etiqueta PHP de cierre
—————————————————-
Si queremos modificar una función que ya existe, lo que se debe hacer es incluir el condicional dentro del PHP para sustituirla. El código a incluir sería:
—————————————————-
if ( ! function_exists( ‘tema-padre’ ) ) {
function tema-padre() {
// Nueva función modificada.
}
}
—————————————————-
Para más información relativa a la creación de temas hijo, entra en la página oficial de Codex de WordPress.