Hooks en WordPress: Guía Completa

Los Hooks de WordPress son un término probablemente familiar en el contexto de WordPress, y es probable que los hayas utilizado inadvertidamente al realizar modificaciones en tu sitio web.

Esta breve guía explicará qué son los Hooks en WordPress y cómo usarlos para maximizar su uso en tu sitio web.

Hooks en WordPress: Guía Completa - 1
Hooks en Wordpress: Guía Completa

Para usar hooks o «ganchos» en programación, no necesitas saber programar para entender qué son y cómo usarlos en algunos casos.

Los hooks permiten que un fragmento de código interactúe o modifique otro fragmento de código en puntos específicos y predefinidos; esto se hace con frecuencia con snippets. Estos ganchos son fundamentales para la forma en que los plugins y los temas interactúan con el núcleo de WordPress, pero el núcleo también los usa ampliamente.

En esta guía, aprenderás un poco más sobre el mundo oculto de los Hooks de WordPress y las posibilidades que se presentan cuando sabes cómo usarlos.

¿Qué es un Hook de WordPress?

Un hook de WordPress permite ejecutar funciones adicionales en momentos específicos dentro del flujo de ejecución del sitio web sin tener que modificar el código fuente del sitio web.

Los Actions y los Filters son los dos tipos principales, que se explicarán más adelante.

Los Actions permiten realizar tareas en puntos específicos del código fuente como disparadores, como agregar contenido después de publicar un artículo.

Los Filters pueden cambiar un título, resaltar palabras o mostrar u ocultar partes de una publicación. También pueden cambiar los datos o los resultados de funciones antes de que se procesen o impriman en pantalla.

Casos prácticos de uso de Hooks en WordPress

Puedes ejecutar funciones adicionales con acciones y filtros insertados estratégicamente para ampliar las capacidades de WordPress según tus necesidades.

La redirección de URL en WordPress para mantener el posicionamiento SEO al cambiar los slugs es uno de los usos más comunes.

Además, la personalización visual a través de modificaciones en HTML y CSS, la importación y exportación de contenidos entre varios sitios WordPress, la capacidad de integrar con API externas para extraer contenido automáticamente y realizar cualquier modificación que desees realizar en el backend y el frontend del sitio. Algunos ejemplos son:

  • Para evitar la pérdida de posicionamiento después de un cambio de URL, se puede utilizar un filtro al slug en WordPress para redirigir la URL de las Entradas.
  • Para personalizar los temas, usa acciones para ejecutar código CSS adicional o agregar widgets a áreas específicas sin alterar los archivos del tema.
  • En el ámbito de la optimización de motores de búsqueda, para mejorar títulos, metadescripciones o para utilizar microdatos con acciones y filtros para obtener un mejor posicionamiento.
  • Para importar o exportar contenido con hooks personalizados, ya que es más fácil crear importadores y exportadores de contenido entre varios WordPress.

La arquitectura de hooks permite a los desarrolladores y usuarios avanzados personalizar fácilmente el comportamiento de WordPress.

Un método para evitar alterar el núcleo de WordPress

¿Crees que deberías modificar los archivos del núcleo o core de WordPress si deseas agregar o modificar algunas funcionalidades de WordPress?

Es obvio que esto te traerá problemas porque, por un lado, perderás todas las modificaciones que hayas hecho cuando actualices WordPress, y, por otro lado, sería difícil mantener el control de tus cambios.

Los hooks de WordPress permiten cambiar, agregar o eliminar las funcionalidades de la plataforma de manera ordenada y sin perder los cambios cuando se actualice. Es evidente que WordPress ya incluye estas conexiones ubicadas de manera estratégica para que puedas incluir código único.

¿Es posible que un plugin tenga hooks?

Los plugins, especialmente aquellos con muchas funcionalidades y que ofrecen acciones extendidas a través de otros plugins, también pueden usar la técnica de los «hooks».

Por ejemplo, el plugin de tienda WooCommerce tiene muchas funcionalidades y otros agregan o modifican las funcionalidades de tienda predeterminadas, como métodos de pago adicionales de WooCommerce, elementos adicionales en los detalles de los productos, métodos de envío adicionales, etc.

¿En qué lugar se deben implementar los cambios?

Si estás creando un plugin, estará incluido en el código de este; sin embargo, la mayoría de las veces, las modificaciones a tu sitio web no se pueden realizar con un plugin desde cero, por lo que puede usar uno de los fragmentos o hacer las modificaciones en el archivo functions.php de tu tema hijo.

En última instancia, el archivo functions.php es el archivo que administra más «hooks» durante una instalación de WordPress.

Puedes realizar tareas como esta en el archivo functions.php:

  • Configurar características como imágenes destacadas de entradas.
  • Realizar una reescritura de URL.
  • Gestionar las solicitudes AJAX.
  • Definir dónde se encuentran los menús y las áreas de widgets.
  • Declarar hojas de estilo CSS y scripts JavaScript. Declarar los nuevos tipos de publicaciones y taxonomías.
  • Personalizar ajustes e interfaz del dashboard.

¿Cuáles son los tipos de Hooks?

Los Actions Hooks y los Filter Hooks son los dos tipos principales de hooks, como has podido leer en el segundo punto de esta guía.

La principal distinción entre un filtro y una acción es:

  • La acción interrumpe el flujo de código para hacer algo y luego vuelve a su flujo normal sin hacer ninguna modificación.
  • El filtro se usa para modificar algo de una manera específica para que el código lo utilice más adelante.

Actions Hooks

Cuando se lanza código adicional en un momento determinado, ejecutas una acción; esto es similar a la ejecución de código por eventos.

Los actions hooks son hooks que ejecutan una acción pero no devuelven valor. En esencia, es agregar una característica específica a una sección específica del código de WordPress.

Los action hooks se definen en el archivo del núcleo de WordPress con la función do_action();, pero se utiliza la función add_action() para usarlos.

La función de WordPress add_action() entonces se utiliza pasándole básicamente dos parámetros: el nombre del Hook y el nombre de la función personalizada, que es donde se añade el código de WordPress.

Esto sería lo básico, pero puedes consultar la documentación oficial de add_action.

Te enseño un ejemplo. Con el siguiente código, se agrega un archivo Javascript al sitio web:

add_action("wp_enqueue_scripts", "web_insertar_js");
	function web_insertar_js(){
		wp_register_script('miscript', get_stylesheet_directory_uri(). '/js/script.js', array('jquery'), '1', true );
		wp_enqueue_script('miscript');  }

El Hook wp_enqueue_scripts se utilizó para agregar un archivo Javascript en el código anterior. La función add_action se refiere a la función web_insertar_js, que contiene toda la lógica para añadir el archivo script.js.

Este código simplemente agrega el script más reciente a la cola, pero no altera ningún valor de entrada.

Filter Hook

En programación, pasar un filtro implica cambiar datos; por ejemplo, si deseas pasar un filtro a un texto, podrías cambiar el texto por otro, cambiar las mayúsculas del texto, etc.

Al igual que los action hooks, los filter hooks te permiten ejecutar código en un momento determinado; sin embargo, en este caso, la función tendrá que devolver un valor modificado.

Los Hooks Fiters se definen en el archivo del núcleo de WordPress con la función apply_filter(), pero también se puede usar la función add_filter() para utilizarlos.

Para utilizar un filtro, se utiliza la función de WordPress add_filter(), a la que se le pasan básicamente dos parámetros: el nombre del Hook y el nombre de la función que llevará a cabo las modificaciones.

Para obtener más detalles sobre el uso de add_filter, consulta la documentación oficial de add_filter.

Aquí hay un ejemplo de cómo cambiar el enlace para leer más en el listado de entradas:

function web_modificar_leer_mas() {
	return ' Leer más '; }
add_filter( 'the_content_more_link', 'web_modificar_leer_mas' );

En el código anterior se utilizó el Hook the_content_more_link, que se refiere a la función web_modificar_leer_mas. Dentro de esta función, se pueden realizar cambios HTML al enlace de leer más y luego devolverlo modificado.

Conclusiones

Como se ha visto, los Hooks son la base de la flexibilidad de WordPress, ya que esta técnica de programación permite que los plugins y temas aumenten la funcionalidad de WordPress, pero también pueden servir para añadir una función específica a tu archivo functions.php del tema.

Las funciones que utilizas con trozos de código para cambiar la configuración por defecto de tu sitio de WordPress se conocen como hooks. Si usas plugins como Code Snippets o HCFM, por ejemplo, debes saber que estás utilizando hooks en tu sitio web de manera simple y controlada. Sin embargo, no debes confundirlos con las acciones o filtros que también añades al archivo de funciones del tema que estás utilizando.

Te permiten insertar fragmentos de código en WordPress de manera segura y sencilla, lo que aumenta y mejora las funcionalidades predeterminadas del sistema de gestión de contenidos (CMS). Estos funcionan como unos «ganchos» que puedes usar para «colgar» nuevos comportamientos sin cambiar los archivos del núcleo de WordPress.

Se dividen en action hooks y filter hooks. Los primeros ejecutan código personalizado en eventos particulares durante la carga de WordPress, como publicaciones, guardado de contenido, inicio de sesión, etc. Los filtros alteran los datos que fluyen a través de WordPress, como el contenido de los artículos, sin afectar los archivos principales.

La magia de los hooks se centra precisamente en la posibilidad de ampliar y mejorar WordPress, ya sea a través de plugins o directamente desde el tema. Por ejemplo, se puede agregar HTML, cargar estilos y scripts adicionales, validar envíos de formularios, almacenar información en la base de datos o modificar dinámicamente títulos y metadatos.

Los hooks pueden cambiar la experiencia del usuario y las capacidades del administrador, permitiendo una variedad infinita de personalizaciones avanzadas muy por encima de las limitaciones del panel de administración del CMS. Sin ellos, adaptar WordPress sería mucho más difícil y limitado.

Para finalizar, te invitamos a revisar nuestros planes de WordPress Hosting. Estos planes de alta calidad están optimizados con tecnología de LiteSpeed para mejorar la velocidad de tu sitio.

Franco Silvetti
Franco Silvetti

Freelancer especializado en WordPress, con más de 4 años de experiencia.