El archivo functions.php de WordPress

¿Qué se necesita para hacer una web WordPress?

Para hacer una web con WordPress, muchas veces nos bastará con las funcionalidades que nos ofrece el propio tema con la ayuda de algún plugin. Pero también se puede dar el caso de que necesitemos funcionalidades específicas que no encontremos en estos elementos.

Entonces, si tenemos conocimientos de PHP, es cuando nos planteamos desarrollar nosotros mismos las funcionalidades que nos faltan. Pero llegan las dudas… ¿Dónde tenemos que poner las funciones que desarrollamos? ¿En qué momento se ejecutarán? ¿Podemos sobreescribir los ficheros del tema?

El archivo functions.php - ¿Dónde poner las funciones del tema WordPress?

Las funciones del tema

Los temas de WordPress disponen de un archivo llamado functions.php para almacenar funciones. Este archivo se encuentra en la carpeta wp-content/themes/mitema/.

Se trata de un fichero donde hay las funciones propias del tema para  personalizar sus características y ampliar su funcionalidad, haciendo uso de los ganchos (hooks) de WordPress (que explicaremos en otro artículo).

Además, el archivo functions.php también se utiliza para:

Es una buena práctica poner el prefijo nombredeltema_ en las funciones que estén definidas dentro de functions.php.

Ejemplo de functions.php

A continuación mostramos un fragmento del que podría ser un ejemplo real de archivo functions.php:

<?php
function mitema_enqueue_styles() {
$parent_style = 'parent-style';
wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css', array( 'appointment-default' ) );
}
add_action( 'wp_enqueue_scripts', 'mitema_enqueue_styles' );

// Eliminar meta generator con la versión de WordPress
remove_action('wp_head', 'wp_generator');

//....

Solamente comentar que, en este caso, se trataría de un functions.php colocado en un tema hijo del tema appointment.

Con la función mitema_enqueue_styles() enganchada (hooked) a la acción wp_enqueue_scripts nos aseguramos cargar también los estilos del padre.

Con la línea del remove_action() evitamos que se renderice el tag meta con la versión de WordPress en las páginas de nuestra web.

¿Se puede modificar el functions.php del tema directamente?

La respuesta es no. A pesar de que se podría hacer y funcionaría, existe el riesgo de que en la próxima actualización del tema se pierdan los cambios. Es decir, perderíamos todas las funciones que hubiésemos añadido.

Para evitar esto, las modificaciones que hagamos sobre cualquier tema WordPress se deben hacer por medio de temas hijo (child themes). Explicaremos cómo crear temas hijo en próximos artículos.

¿Plugins o functions.php?

Como alternativa a utilitzar el fichero de funciones del tema, functions.php, también se puede personalizar la web creando nuestros propios plugins. De hecho, este es el método recomendado.

Estos dos métodos tienen algunas diferencias. Las dos principales son:

  • El archivo functions.php es propio de cada tema. Es decir, en el momento en que el tema activo sea otro, no se cargarán estas funciones. Por contra, los plugins son independientes del tema. Si el plugin donde las definimos está activado, las funciones estarán disponibles.
  • Un plugin suele tener un objectivo concreto (p.ej. ofrecer un widget para mostrar los últimos tuits en tu cuenta de twitter) mientras que functions.php suele tener varios bloques de código con finalidades diversas.

Comentar que el archivo functions.php se carga posteriormente a que se hayan cargado todos los plugins. Si la modificación a realitzar tiene alguna dependencia que pueda verse afectada por el orden de carga, habrá que tenerlo en cuenta.


Deseamos que este artículo te haya sido de utilidad. Si es así, te animamos a compartirlo en las redes sociales. ¡Muchas gracias!