¿No sabes qué significa algún término? Consulta el glosario
¿Qué es el archivo functions.php y cómo se edita?
En muchas entradas que publico por aquí, y en muchas otras que hay por Internet, vas a ver que se habla muchas veces del archivo “functions.php” y de que hay que insertar algún código allí.
functions.php es un archivo muy importante que va dentro de cada tema, aunque no siempre existe, y es donde se añaden todas esas características extra que quieres que tu web tenga para hacerla más personalizada, única y como a ti te gusta. De hecho, se comporta como un plugin.
Ejemplos:
- Modificar el correo de nuevo usuario
- Esconder menús en el escritorio de WordPress
- Modificar el comportamiento de la web al cerrar sesión
- Esconder el botón de añadir al carrito en ciertas páginas
- Aumentar el rendimiento de WordPress
Para todos estos ejemplos ya tienes plugins disponibles en el repositorio de WordPress, por lo que te preguntarás: ¿Por qué querría escribir lo que necesito en ese archivo cuando existe un plugin? Por dos razones:
- Los ejemplos anteriores son bastante sencillos, pero usuarios expertos y desarrolladores pueden usar functions.php para más cosas complicadas para las cuales no existe ningún plugin. Por ejemplo, para eliminar los espacios en blanco de los nombres de usuario que WPForms crea al registrar usuarios. ¡A ver si encuentras un plugin para eso!
- Normalmente, lo que escribas en el functions.php no va a afectar tanto al rendimiento de tu web como un plugin, ya que lo más normal es que encuentres un plugin que hace muchas más cosas que lo único que buscas, por lo que estarás instalando un plugin más pesado de lo que necesitas.
functions.php vs plugin
En teoría, con conocimientos de programación, uno puede crear un plugin que tenga el mismo contenido que el archivo functions.php. Pero tienen ciertas diferencias tanto técnicas como semánticas.
Un plugin:
- Está hecho para un solo propósito
- Está en la ruta
/wp-content/plugins
- Se ejecuta cada vez que una página de tu web se carga si el plugin está activado
El archivo functions.php:
- Puede tener varios bloques de código para diferentes propósitos
- Está en la ruta
/wp-content/themes/tema
, donde “tema” es el nombre del tema que tienes actualmente - Se ejecuta cada vez que una página de tu web se carga solo si el tema al cual pertenece está activo
Yo personalmente uso ambos métodos: Si lo que quiero añadir está relacionado con el tema, lo pongo en el functions.php. Si no, lo pongo en un plugin por si en un futuro quiero cambiar de tema que no me afecte.
Cómo editar el archivo functions.php
Primero, crea un tema hijo
Aunque no es necesario, es recomendable que el archivo functions.php que estés editando esté dentro de la carpeta de tu tema hijo. ¿Qué es un tema hijo? Es un tema que hereda la funcionalidad del tema padre. ¿Por qué existe? Básicamente para poder modificar los archivos del tema sin sobreescribir los originales. Y la gran ventaja que se obtiene con esto es que los cambios que hagas, incluidos los cambios en el functions.php, se mantendrán al actualizar tu tema padre.
Así es como se ve un tema hijo desde un explorador de archivos:
Dentro encontramos lo siguiente:
El tema hijo contiene el archivo style.css para indicar donde está el tema padre y el functions.php que modificaremos.
El proceso para crear un tema hijo es normalmente el mismo para todos los temas, pero a veces hay ligeras diferencias, así que te recomiendo que contactes con el autor de tu tema para que te indique cómo hacerlo.
Y luego, usa un editor de ficheros
O un cliente de FTP, como FileZilla. Tanto si tu proveedor de alojamiento tiene un editor de ficheros como si usas un cliente de FTP, tienes que ir a la ruta /wp-content/themes/tema-hijo. Por ejemplo, en las capturas de pantalla de arriba, ves que mi tema hijo es “blocksy-child”.
Lo abrimos con un editor de texto y copiamos y pegamos el código que queramos al final del archivo. Por ejemplo, esto desactiva la barra de herramientas superior de WordPress:
// Quitar barra superior
add_filter( 'show_admin_bar', '__return_false' );
Si ves un enlace de afiliado, te garantizo que es de un producto o servicio que realmente vale la pena. A diferencia de otras webs, aquí no se promociona nada solo porque paga más.