En muchas ocasiones deseamos hacer algunos cambios en el estilo de nuestro theme de WordPress, ya sea cambiarle el color a un fondo, añadir una tipografía externa, cambiar el tamaño de un texto, etc.
Es cierto que para cambios de CSS tenemos la opción de personalizar el CSS dentro de los ajustes del tema, pero esto lo que hace es añadir código CSS en la cabecera del HTML del sitio web, lo que no forma parte de las buenas prácticas del estandar HTML5.
También podemos modificar de forma manual el archivo style.css del theme, pero corremos el riesgo de que el theme se actualice y perdamos los cambios efectuados hasta la fecha, o rompamos sin querer alguna de las clases definidas y nuestro sitio no se vea del todo bien.
Añadir nuestro archivo CSS a WordPress
Declarar un nuevo archivo CSS dentro de nuestro sitio web en WordPress es muy sencillo y puede hacerse tanto desde el archivo functions.php como desde nuestro propio plugin de funciones (si no sabes cómo crear tu propio plugin de funciones, visita este artículo). Esto último es lo más aconsejable, ya que así nos aseguramos de mantener todos los cambios realizados si el tema principal se actualiza.
Lo primero, crearemos nuestro archivo de CSS, al que llamaremos por ejemplo «mi-css.css». Y lo guardamos en un subdirectorio dentro de nuestro theme principal, por ejemplo en la ruta:
/wp-content/themes/mi-theme/css/mi-css.css
Ahora creamos la siguiente función, como hemo comentado, o bien en el archivo functions.php del thema activo, o en nuestro plugin de funciones:
<?php
function mi_css_personalizado(){
wp_enqueue_style('mi-css', get_template_directory_uri().'/css/mi-css.css', array(), '1.0.0');
}
add_action('wp_enqueue_scripts', 'mi_css_personalizado');
?>
wp_enqueue_style, añadirá nuestro nuevo archivo de estilos como un <link rel=»stylesheet» href=»https://midominio/wp-content/themes/mi-theme/css/mi-css.css», que es la forma a la que estamos acostumbrados cuando aprendemos HTML + CSS por primera vez.
Los parámetros que espera wp_enqueue_style son:
- Nombre del parámetro: ‘mi-css’. Podemos cargar todos los archivos de estilos que deseemos, siempre que les asignemos un nombre propio a cada uno.
- Ruta del archivo CSS: Utilizando la función get_template_directory_uri(), nos traemos la dirección completa hacia nuestro tema activo, es decir: https://midominio/wp-content/themes/mi-theme/. Ahora solo tenemos que añadirle el subdirectorio /css donde guardamos nuestro archivo mi-css.css.
- El siguiente parámetro es un array(), donde podemos especificar si nuestro archivo de estilos depende de que antes se cargue otro archivo CSS, por ejemplo, porque hereda clases de este. Si en nuestro archivo de estilos personalizados heredamos propiedades de alguna clase del tema principal, tendremos que indicarlo dentro del array(), por ejemplo array(‘estilo-principal’).
- El cuarto parámetro es la versión de nuestro archivo. Por defecto, los navegadores web guardan los archivos CSS y Javascript para cargarlos már rápidamente en siguientes visitas. Si modificamos nuestro archivo de estilos, es conveniente cambiar el número de versión para que el navegador compare la nueva versión con la que tiene guardada en caché y si esta difiere, volver a descargarse el archivo.
Con esto ya tenemos disponible nuestro propio archivo de estilos, donde podremos llevar a cabo todas las modificaciones que necesitemos en nuestro theme.
Si crees que este artículo es útil, compártelo, ayudarás a que este sitio siga creciendo y ofreciendo más y mejores contenidos. Hasta el siguiente post 🙂
Laura dice
¡Hola de nuevo, Daniel!
Una pregunta: he comprobado que el parámetro get_template_directory_uri() devuelve el directorio donde se encuentra genesis, y no el child theme.
Quizá no me ha quedado claro, pero ¿sería correcto alojar el CSS en el tema padre en lugar del tema hijo? Si el archivo misfunciones.php que me he creado lo he puesto en el tema hijo, me parecía un poco raro que tuviera que colocar el css en el tema padre…
¡Gracias de antemano y un saludo!
Laura.
Daniel, Gestionatuweb.net dice
Hola Laura, para referenciar al archivo de estilos del Child Theme tienes que usar get_stylesheet_directory_uri().
Un saludo.
Laura dice
Vale, entiendo que «en nuestro theme principal» es el genesis.. que es lo que no he hecho, jejeje. Allá voy 🙂