Anteriormente vimos algunos de los métodos más populares para personalizar tu tema WordPress, realizando cambios en el diseño e incluso añadiendo nuevas plantillas a través de un tema hijo. Hoy vamos a adentrarnos en algunos de los aspectos más avanzados del manejo de WordPress, empezando por una de sus funciones más elementales: los hooks o ganchos.

Esta funcionalidad es, en pocas palabras, lo que hace que WordPress sea tan modular y flexible. Gracias a ellos podremos cambiar virtualmente cualquier aspecto de nuestro sitio, ya sea del contenido o del diseño, y tendremos muchas más opciones que incluso si utilizáramos un tema hijo. Vamos a ver qué son y cómo funcionan.

Qué son los hooks de WordPress

Los ganchos (llamados hooks en inglés) son parte de la forma en que WordPress está programado, y su principal función es la de permitirte cambiar prácticamente cualquier aspecto de la plataforma sin necesidad de tocar su código fuente original.

Puede que quizás se traten de un concepto algo avanzado para los que no están habituados a los lenguajes de programación, pero definitivamente vale la pena aprender su funcionamiento ya que te permitirán hacer muchas cosas. Para plantearlo de una forma sencilla, vamos a utilizar una sencilla analogía.

Una cadena de producción

Imagina por un momento que tu página web es como una larga cadena de producción. Cada vez que alguien visita tu página, WordPress pone en marcha esta cadena de principio a fin para generar los contenidos que se le mostrarán a tu visitante; es decir, para generar la página entera.

wordpress-hooks-chain

Igual que en una cadena de producción real, como por ejemplo en una fábrica de automóviles, cada una de las piezas debe ser ensamblada en el momento correcto para producir el resultado adecuado. En el caso de tu sitio web en WordPress, se sigue un orden preestablecido para crear un resultado coherente: primero debe crear la cabecera, después el contenido, y finalmente el pié de página.

Siguiendo todo este proceso, tu WordPress acaba generando la página solicitada y se la muestra al visitante.

Modificando la cadena de producción

Teniendo en cuenta el ejemplo anterior, los hooks de WordPress son una forma de modificar y agregar elementos a la cadena de producción. Durante los pasos que WordPress realiza cada vez que se genera una página web, hay muchos puntos en los cuales puedes colocar acciones que realizan una tarea en particular. Es decir, los ganchos nos permiten insertar o eliminar funciones para personalizar los contenidos que se mostrarán al visitante.

Los ganchos sólo pueden ser utilizados en determinados puntos de la cadena, incluidos por defecto en todo sitio WordPress. Afortunadamente, existe una cantidad enorme de ganchos que puedes aprovechar para añadir tus modificaciones, con lo que las posibilidades casi ilimitadas.

Para qué te pueden servir

Los ganchos son extremadamente útiles para modificar los contenidos de tu página web. Mientras que con los retoques CSS o los temas hijo sólo puedes personalizar la apariencia de tus páginas, los ganchos te permiten realizar cambios mucho más avanzados.

Un ejemplo de esto sería incluir publicidad en cada uno de tus artículos. Gracias a los ganchos, puedes insertar de forma dinámica el contenido de tu elección antes o después de generar el cuerpo de un artículo. La gran ventaja de los ganchos es que además los podrás implementar si necesidad de crear un tema hijo, o de realizar modificaciones a tu tema.

Los ganchos se utilizan mediante funciones PHP, así que para hacer uso de ellos necesitarás tener unas nociones básicas de programación. Si no eres programador, no te preocupes; esta guía te acompañará en cada uno de los pasos necesarios para implementar los cambios que necesites.

Utilizando hooks para personalizar WordPress

Vamos a ver un ejemplo práctico: WordPress tiene un gancho denominado the_content, el cual se utiliza cada vez que se genera el contenido de una página o post utilizando la función PHP del mismo nombre. Aprovechando este hook, podemos crear una función propia que añada texto adicional al final de cada bloque de contenidos. Si además utilizamos la función condicional is_page para que sólo se ejecute esta función en una página, podremos añadir contenido extra a las páginas sin tocar una línea de código:

add_action('the_content', 'mifuncion_contenidos');
function mifuncion_contenidos(){
    if(is_page()){
        echo 'Escrito Por Manuel Vicedo';
    }
}

Vamos a analizar esta pieza de código línea a línea:

  • La primera línea hace uso de la función add_action. Esta es la principal herramienta a la hora de utilizar los ganchos de WordPress, ya que te permite enlazar una función creada por tí mismo a uno de los hooks disponibles. En ella, hemos indicado que queremos enlazar al gancho the_content la función mifuncion_contenidos.
  • Después procedemos a declarar la función mifuncion_contenidos. El nombre de la función debe ser el mismo que especificamos en la anterior línea, de lo contrario saltaría un error que podría echar abajo nuestro sitio.
  • Hemos utilizado la función is_page para determinar que estamos en una página. Recuerda, al añadir una acción a the_content eso quiere decir que se utilizará cada vez que el tema WordPress haga uso de dicha función, por lo que queremos filtrar según el tipo de página en el que nos encontramos para tener mayor control.
  • Finalmente, generamos el contenido que queremos dentro de la función.

Como resultado, esta función añadirá ‘Escrito Por Manuel Vicedo‘ al final de cada bloque de contenido dentro de las páginas de tu sitio. La principal ventaja de utilizar este método es que no hemos tenido que modificar el diseño de nuestro tema, por lo que no es necesario crear un tema hijo ni retocar los archivos existentes para lograrlo.

wordpress-hooks-action

Sin embargo, cómo insertamos esta función en nuestro sitio WordPress? Hay dos maneras:

  • Añadir el fragmento de código al archivo functions.php de nuestro tema en uso
  • Crear un mini-plugin para hacer que estos cambios permanezcan aunque cambiemos nuestro tema WordPress

Personalmente recomiendo siempre utilizar el segundo método, ya que es una gran forma de añadir múltiples personalizaciones de forma controlada. Además, teniendo todas tus modificaciones en diversos plugins quiere decir que podrás activarlas y desactivarlas sin apenas esfuerzo.

Una forma diferente de personalizar WordPress

Los ganchos son una forma diferente de personalizar el diseño de tu sitio WordPress. En comparación con los temas hijo, los ganchos funcionan sobre todo por medio de PHP, lo que los hace más avanzados para quienes no poseen conocimientos de programación. Sin embargo, una vez se aprende a usarlos se convierten en una herramienta imprescindible, ya que se usan también en el desarrollo de plugins a la hora de extender las funciones básicas de WordPress.