Qué es el archivo functions.php en WordPress?

El archivo functions.php aparece en la mayoría de los temas y permite tener el control de varias cosas que pasan en un tema. Se podría decir que este archivo puede hacer lo que cualquier plugin haría. También es positivo para temas que necesitan ir ligados con ciertos plugins. Aunque parezca un archivo imprescindible, no es obligatorio, pero si altamente recomendable.

Este archivo actúa de intermediario entre el tema activo y funciones internas de WordPress para proporcionar funcionalidades como registrar barras laterales o generar shortcodes.

Diferencia entre functions.php y plugins

Aunque con functions.php puedas realizar las mismas acciones que un plugin, hay que diferenciar cuando deberías modificar el archivo o instalar un plugin.

Hay que tener en cuenta que este archivo está dentro del directorio del tema y el código que tiene sólo se ejecuta si el tema está activo. Sin embargo, los plugins pueden permanecer operativos sin importar qué tema esté activo.  Por lo tanto, no pongas en functions.php funcionalidades que sean requeridas por temas diferentes. Igualmente, no deberías usar un plugin que sólo es relevante para el tema activo.

Antes de la existencia de functions.php

Para realizar modificaciones sustanciales era preciso alterar los archivos core de WordPress, algo muy arriesgado. Además, si se actualizaba WordPress también lo hacían los archivos core perdiendo todas las modificaciones realizadas. Lo cual era un dilema porque no actualizar suponía tener vulnerabilidades y pérdida de novedades interesantes. También es cierto que actualizar un tema con el functions.php modificado pierdes los cambios, pero tienes la posibilidad de tener un tema hijo conservando las modificaciones, aunque actualices el tema.

Actualmente es raro que se tenga que modificar los archivos del núcleo de WordPress gracias a la cantidad de hooks  para rescribir el contenido o agregar una nueva funcionalidad.

Y hasta aquí el post de hoy, espero que os haya gustado. A seguir picando 🙂