WordPress Hooks

WordPress Hooks: Actions

Si estás familiarizado con WordPress, probablemente hayas oído hablar de los hooks, pero… ¿qué son o para qué sirven?

Los hooks de WordPress podrían definirse como ganchos o puntos de acceso en determinadas partes o ubicaciones del proceso de ejecución donde podemos engancharnos con nuestras propias funciones y alterar o modificar el comportamiento por defecto de dicho proceso y/o función, o simplemente modificar alguna variable o dato.

Es decir, nos permiten modificar el código fuente de WordPress o de un Plugin sin realmente modificar el código fuente. Podemos alterar el comportamiento de WordPress o de un plugin sin tocar su core.

En la anterior entrada vimos cómo era el ciclo de carga de WordPress y en que orden se ejecutan esos hooks.

Intervenir a través de los hooks es una buena práctica, ya que nos permitirá seguir actualizando el core de WordPress o los plugins sobre los que hayamos actuado sin perder la funcionalidad extra añadida por nosotros.

Teniendo esto claro, lo siguiente es comentar que en WordPress existen dos tipos de hooks: Actions y Filters. En este primer post vamos a ver que son los Action Hooks y cómo sacarles provecho a través de un ejemplo práctico:

 

Action Hooks

Un Action Hook es un gancho o un punto de acceso en un lugar concreto dentro de la línea de ejecución o ciclo de carga de WordPress, Plugins o Temas, que nos permite ejecutar nuestras propias funciones y alterar o modificar el comportamiento por defecto.

Para entenderlo de un modo más sencillo: cuando llegues a tal punto, ejecuta lo que yo te diga.

Para esto WordPress nos facilita la función add_action()

Donde

  • $tag (requerido): El nombre del Action donde nos queremos enganchar
  • $function_to_add (requerido): Función propia a la que vamos a llamar cuando el proceso de ejecución llegue a ese punto
  • $priority (opcional): Prioridad de ejecución respecto a otras funciones que pueden también engancharse al action. El valor por defecto es 10. Valores bajos corresponden a mayor prioridad de ejecución
  • $accepted_args (opcional): Número de argumentos que la función acepta

 

Uno de los hooks que más se utilizan probablemente sea wp_head. En el archivo header.php de tu tema de WordPress verás que antes del cierre de la etiqueta </head> se llama a la función wp_head(). Esta función simplemente crea un hook llamado wp_head justo en ese punto de ejecución, es decir, antes de que la carga de la página pase por el cierre de la etiqueta </head>

Como puede observarse, la creación de un hook es mediante la función do_action(), que veremos más adelante en un segundo ejemplo. En este primer ejemplo vamos a ver cómo podemos actuar en ese punto de ejecución.

Imagina que desde el functions.php de tu tema o desde un plugin que estés desarrollando quieres intervenir en el action wp_head para añadir una etiqueta concreta. Bastaría con llamar a la función add_action() de este modo:

Y ahí podríamos escribir etiquetas HTML propias, añadir el script de google analytics, etc…

 

Creando nuestros propios actions hooks

Imagina que estamos desarrollando un plugin que añade campos personalizados al registro de usuario de WordPress. No voy a entrar en el detalle de la funcionalidad en sí, para ello puedes leer el post que escribí sobre esto.

En nuestro plugin tendremos una función que añadirá campos extras (por ejemplo: poblacion, provincia, teléfono…) al formulario de registro. Imaginad que queremos dejar una puerta abierta para que otro desarrollador que se descargue nuestro plugin pueda actuar en un punto concreto de la ejecución y añadir su propia funcionalidad o adaptarlo a sus necesidades:

Hemos añadido dos actions (users_register_formusers_register_form_save_data). De este modo otra persona podrá conectarse en esos puntos de ejecución mediante add_action() y por ejemplo añadir un campo más, avisar por mail a alguien cuando una persona se registra, etc…

Puede que también te interese

Seguridad WordPress: proteger el acceso a wp-admin
Uno de los objetivos más importantes para cualquier atacante es el acceso al panel de administración o back-end de nuestro WordPress. Debemos aumentar la seguridad…
Creando un plugin para WordPress parte 2: Estilo del Código
1. Creando un plugin para WordPress: Planificación y planteamiento 2. Creando un plugin para WordPress: Estilo del Código 3. Creando un plugin para WordPress: Escribiendo…
Todo lo que hay que saber sobre las imágenes destacadas o post thumbnails en WordPress
Los post thumbnails o imágenes destacadas es una característica que se introdujo en la versión 2.9 de WordPress. Permite asignar una imagen representativa a las…
Hacer una migración de dominio en WordPress sin perder posicionamiento
En el artículo anterior vimos cómo migrar WordPress de hosting y de dominio. Puede darse el caso de que tu dominioantiguo.com estuviera bien posicionado y…