Crear plugins o desarrollar un tema completo en WordPress es muy sencillo. Para lograrlo primero debes saber qué son los hooks y aprender a dominarlos. En este artículo aprenderás qué son los hooks y cómo te ayudarán a convertirte en una verdadera estrella de WordPress.
Hook es un termino genérico en WordPress que se usa como referencia, en lugares estratégicos dentro del core, para inyectar código propio y agregar comportamientos o cambiar el funcionamiento por defecto de WordPress.
Un hook puede ser declarado en dos lugares dependiendo del tipo de desarrollo que estés haciendo: en function.php, si estás trabajando con un tema o tema hijo; o directamente en un plugin.
En WordPress existen dos tipos de hooks: Acciones (Actions) y Filtros (Filters).
Una acción te permite ejecutar tus propias funciones en un lugar específico dentro de la línea de tiempo de ejecución de WordPress, Plugin o Tema para que puedas agregar nuevas funcionalidades o personalizaciones. Es decir, “cuando llegues a este punto, haz esto”.
Te puedes interesar: Cómo crear un plugin para WordPress desde cero
La forma mas genérica de representar una acción es la siguiente:
add_action( $hook, $funcion );
Profundicemos en esta línea de código:
add_action: es la función nativa de WordPress para agregar una acción.
$hook: es el nombre de la acción en donde inyectaremos nuestro código.
$funcion: es el nombre de la función que deseamos ejecutar.
Veamos un ejemplo real y bastante común de cómo usar un hook. El wp_head, usado por muchos temas y plugins para agregar información entre los tags de la página, en este ejemplo vamos a añadir un meta tag.
Objetivo: agregar un meta tag de descripción
Con el nombre de la función para agregar una acción, y el nombre del hook en donde vamos a inyectar nuestro código, basta declarar la función con nuestra lógica:
add_action( 'wp_head', 'platzi_add_meta_description' );
functionplatzi_add_meta_description(){
echo"\n\r";
echo"\n\r";
echo"\n\r";
}
En este caso, nuestra función simplemente imprime un par de comentarios de HTML y nuestro meta tag. Al usar el hook wp_head puedes inyectar cualquier tipo de información.
Así, hemos inyectado exitosamento nuestro código con una acción.
Los filtros son funciones a las cuales WordPress pasa información en un punto de ejecución. Así, un filtro te permite manipular textos y contenidos antes de que sean utilizados, como modificar el título de un artículo antes de ser mostrado en pantalla, por ejemplo.
Al igual que las acciones, los filtros te permiten ejecutar tus propias funciones, con la gran diferencia de que el propósito de un filtro es únicamente modificar información. Dicho de modo simple: “dame esta información y cámbiala por esta otra.”
El propósito de un filtro es únicamente modificar información.
La declaración de un filter hook es muy similar a la de un action hook, la diferencia es el nombre de la función:
add_filter( $tag, $funcion );
Profundicemos en esta línea de código:
add_filter: es la función nativa de WordPress para agregar un filtro.
$tag: es el nombre del filtro en donde inyectaremos nuestro código.
$funcion: es el nombre de la función que deseamos ejecutar.
Para poner en práctica el uso de un filter hook, vamos a modificar el titulo que WordPress imprime al usar la función wp_title()
Objetivo: obtener el título de la página y añadir el texto ‘Powered by Platzi’, usando el filtro wp_title.
Sabiendo el nombre de la función para agregar un filtro y el nombre del hook del cual vamos a tomar la información, solo basta declarar la función con nuestra lógica:
add_filter( 'wp_title', 'platzi_change_site_title' );
function platzi_change_site_title($title{
return $title . " | Powered by Platzi";
}
En este caso nuestra función, a diferencia del action hook, recibe un parámetro: ¿recuerdas la definición del filter hook?
Los filtros son funciones a las cuales WordPress pasa información en un cierto punto de ejecución, de este modo un filtro te permite manipular textos y contenidos antes de que sean utilizados.
De esta forma, nuestra función recibe información, en este caso una cadena de texto, y dentro de nuestra lógica debemos agregar una cadena al final de la misma.
Cabe mencionar enfáticamente que una función que haga uso de los filtros siempre debe regresar algún tipo de información para que la ejecución del proceso continúe.
Aprende más en el Curso Práctico de WordPress.
¡Allá nos vemos!
Correción. Hizo falta cerrar el parentesis al pasar el parametro $title en el ejemplo del Filter Hook.
add_filter( 'wp_title', 'platzi_change_site_title' ); function platzi_change_site_title($title) { return $title . " | Powered by Platzi"; }
Buena explicación, gracias!
buena info, gracias!
Hola, soy nuevo en el mundo de wordpress y me presentaron este reto:
Hacer un plugin que nos permita ofrecer la forma de envio Correo Argentino en el Store cuando realizan la compra.
Hay que ofrecer la posibilidad al cliente que desde su tienda facusystem pueda seguir una serie de pasos, darse de alta en Correo Argentino y conectar esta forma de envio en su tienda.
Conectarte por API-REST no utilizar ningun plugin existente