Los hooks en WordPress: todo lo que debes saber

Ya ta hablado de los shortcodes hace unas semanas, hoy te voy a hablar de los hooks o ganchos también fundamentales en WordPress  aunque su uso esta más orientado a usuarios avanzados y desarrolladores. Los hooks puede ser muy útiles si se sabe hacer uso de ellos.

En este artículo te voy a explicar todo lo que debes saber sobre hooks, que pueden ser muy útiles para modificar el theme de tu web e incluso modificar o desarrollar plugins.

Al igual que ocurre con los shortcodes, muchos themes premiun incluyen sus propios hooks aunque para su uso puede ser necesario instalar un plugin extra.

¿Qué son los hooks?

Los hooks son puntos concretos del cuore de WordPress donde es posible añadir funciones propias para modificar  o cambiar algunos comportamientos

Hay dos tipos de hooks, Action Hooks y Filter Hooks, o lo que es lo mismo acciones y filtros. Se usan de igual forma pero su funcionamiento es muy diferente, por eso conviene saber diferenciar ambos.

Los hooks se pueden añadir en el function.php de tu theme o theme hijo o bien mediante plugin.

Action hooks

Los action hooks o acciones permite ejecutar funciones propias además de las funciones de WordPress para una acción concreta.

Filter hooks

Los filter hooks o filtros permiten una funcionalidad concreta ya existente en WordPress. Se diferencia de los action en que los filtros deben retornar un parámetro de la función original.

Estructura de un hook

Para definir una función y engancharla o conectarla con un hook de WordPress, solo tienes que definir la función y utilizar las llamadas add_action y add_filter.

La función add_action sera construye o estructura de la siguiente manera

  • $tag, es el nombre de la acción a conectar
  • $function_to_add, es la función propia a conectar
  • $priority, esto es opcional, es la prioridad de ejecución con respecto a otras funciones
  • $accepted_args, también opcional, numero de argumentos que la función original acepta
WordPress por defecto incluye muchos acciones, puedes verlas aquí https://codex.wordpress.org/Plugin_API/Action_Reference

La función add_filter se construye o estructura del siguiente modo

  • $tag, es el nombre del filtro a conectar
  • $function_to_add, es la función que se activar cuando se ejecute el filtro
  • $priority, opcional, es la prioridad de ejecución con respecto a otras funciones
  • $accepted_args, opcional, numero de argumentos que la función acepta, por defecto 1
WordPress por defecto incluye muchos filtros, puedes verlas aquí https://codex.wordpress.org/Plugin_API/Filter_Reference

Un ejemplo: wp_head

El hook más usado en WordPress es wp_head que se encuentra el archivo header.php tu theme antes del cierre de la etiqueta </head>

Desde el archivo functions.php puedes ejecutar el hook con este código

Puedes añadir lo quieras con este hook, desde el código de Google analytics, un banner de publicidad, un shortcode, etc..

Hooks y themes

Algunos themes premiun facilitan el uso de hooks a través del panel de administración, en algunos casos siendo necesario instalar un plugin extra, que para usuarios novatos puede se útil. Para usuarios avanzados,  en cualquier theme es posible hacer uso de hooks a través del archivo functions.php y haciendo uso de un child theme o tema hijo para perder los cambios con las actualizaciones del theme.

Algunos themes incluyen hooks propios, otros no, este caso siempre se pueden usar los hooks propios de WordPress.

Genesis framework

No podían faltar los hoosk en genesis framework y además facilita su uso a través del panel de administración por medio el plugin Genesis SImple hooks  que da acceso a los más de 50 hooks de geneis y a los propios de WordPress.

Si quieres saber más sobre Genesis y los sus hoosk , puesdes leer esta guía de Omar de la Fuente, https://www.haciaelautoempleo.com/genesis-simple-hooks/

GeneratePress

GeneratePress tambien tiene hoosk propios y su versión premiun incluye el addon GP Hooks que facilita su uso. Los hooks que incluye son los siguientes:

  • wp_head
  • generate_before_header
  • wp_footer
  • generate_credits
  • generate_header
  • generate_inside_navigation
  • generate_after_header
  • generate_before_content
  • generate_before_main_content
  • generate_before_header_content
  • generate_after_content
  • generate_inside_slideout_navigation
  • generate_inside_container
  • generate_after_entry_header
  • generate_after_main_content
  • generate_after_entry_content
  • generate_sidebars
  • generate_before_footer
  • generate_after_header_content
  • generate_paging_navigation
  • generate_inside_mobile_menu_bar
  • generate_after_entry_title
  • generate_inside_secondary_navigation
  • generate_before_copyright
  • generate_after_footer_content
  • generate_before_footer_content
  • generate_inside_mobile_menu
  • generate_after_footer_widgets
  • generate_after_left_sidebar_content
  • generate_after_archive_title
  • generate_before_archive_title
  • generate_before_right_sidebar_content
  • generate_after_right_sidebar_content
  • generate_after_archive_description
  • generate_before_left_sidebar_content
  • generate_archive_title
  • generate_before_comments
  • generate_inside_mobile_header_menu
  • generate_mobile_cart_items
  • generate_inside_secondary_mobile_menu
  • generate_inside_comments
  • generate_inside_mobile_header
  • generate_after_primary_content_area
  • generate_dashboard_inside_container
  • generate_dashboard_after_header

 

Si quieres saber más de los hooks de GeneratePress, puedes ver la documentación al respecto, https://docs.generatepress.com/collection/hooks/

OceanWP

Otro theme que incluye hooks es OceanWP y al igual que GeneratePress, tiene un addon premiun  Ocean Hooks que facilita su uso.

Si quieres saber más sobre los hooks de OceanWP, puede ser su documentación al respecto http://docs.oceanwp.org/category/376-hooks

Code snippets

El plugin Code snippets facilita el uso de hooks desde el panel de administración de WordPress de modo que puedes gestionar todo el código personalizado de tu web directamente desde el panel de administración.

 

Concluiones

En resumen los hooks son muy útiles para modificar WordPress aunque teniendo en cuenta que es algo más avanzado.

Me gustaría saber tu opinión sobre los hooks en los comentarios

Soy Angel García,diseñador web especializado en WordPress y community manager. Creador de WebmasterCreativo, mi blog, de desiño web en WordPress y redes sociales. Además soy licenciado en Historia.

Deja un comentario