¿Quieres saber qué son los ganchos de WordPress? En este post te enseño qué son los WordPress hooks y cómo utilizar acciones, una de las herramientas más poderosas que brinda WordPress a los desarrolladores web. Gracias a ellos podrás extender las funcionalidades de tu sitio web a niveles insospechados.
¡Empecemos!
Los WordPress Hooks, también llamados ganchos de WordPress, son elementos que permiten modificar o expandir las funcionalidades y comportamiento que tiene WordPress por defecto. El nombre de gancho no es casual, ya que los hooks nos permiten «engancharnos» a algún punto de la ejecución del sitio web para ejecutar nuestro código personalizado.
Pongamos un ejemplo. Imaginemos que queremos llevar un registro de todas las veces que se guarda una entrada en nuestro sitio web. El objetivo es que, cada vez que un usuario está editando una entrada y pulsa el botón de guardar, se almacene un registro con el título del post guardado y un mensaje. Pues bien, podríamos resolver este problema empleando un hook.
Existen dos tipos de ganchos o hooks en WordPress, las acciones y los filtros. Por un lado, las acciones, también denominadas WordPress actions, permiten ejecutar un código determinado cuando ocurre algún tipo de evento en nuestro sitio web. Es decir, nos permiten definir una función PHP que será ejecutada cuando ocurra el evento que nosotros le indiquemos. Si no sabes qué es PHP, te recomendamos familiarizarte con él con nuestro siguiente artículo.
Por otro lado, los filtros hacen posible la modificación de los datos que WordPress recoge de su base de datos y muestra en pantalla. Esto es, gracias a los filtros podemos realizar acciones como modificar un texto mostrado o evitar que un determinado contenido se visualice en pantalla.
Como hemos mencionado, las acciones de WordPress sirven para definir un código a ejecutar cuando ocurra un determinado suceso (evento) en nuestro sitio web. Dicho evento puede ser o bien un suceso personalizado definido por el programador, o bien un evento ya definido en WordPress. Por ejemplo, el evento deleted_comment viene predefinido en WordPress y se ejecuta inmediatamente después de que un comentario haya sido eliminado de la base de datos.
En este sentido, cuando trabajamos con acciones, vamos a emplear dos funciones de WordPress:
Al trabajar con hooks, añadiremos estas funciones en el archivo functions.php que podrás encontrar en el directorio del tema que estés utilizando en tu sitio web. Normalmente, la ruta es la siguiente: /wp-content/themes/nombre-tema/functions.php.
Retomemos nuestro ejemplo anterior, en el que deseamos automatizar el registro de las veces que se guardan las entradas de nuestro sitio web. Para resolver el problema, por un lado estableceremos un action hook en el que definiremos el evento del gancho y la llamada a la función a ejecutar, y por otro lado crearemos la propia función. La sintaxis sería la siguiente:
add_action('nombre_evento', 'nombre_funcion');
function nombre_funcion () {
//code
}
Siguiendo con nuestro ejemplo, vamos a aclarar algunas cuestiones antes de programar el código que necesitamos:
Una vez aclarados los aspectos anteriores, a continuación se muestra el código necesario para resolver el problema:
/*Definimos la acción*/add_action('save_post', 'registrar');
/*Creamos la función*/function registrar ($post_id){
/*Almacenamos en una variable la ruta del fichero*/ $ruta = get_template_directory() . '/registro.txt';
/*Almacenamos en una variable el texto de cada registro*/ $mensaje = get_the_title($post_id) . 'fue guardado!';
/*Definimos las funciones para abrir el fichero, escribir los registros y cerrarlo*/ if (file_exists($ruta)){
$fichero = fopen ($ruta, 'a');
fwrite ($fichero, $mensaje."\n");
} else {
$fichero = fopen ($ruta, "w");
fwrite ($fichero, $mensaje."\n");
}
fclose($fichero);
}
Si realizamos la prueba de guardar entradas y después abrir nuestro fichero, veremos que se han escrito más líneas de las necesarias. Esto se debe a que la acción ‘save_post’ es peculiar, ya que no se ejecuta únicamente cuando se guarda una entrada, sino también cuando un post ha sido revisado y cuando WordPress ha creado un autoguardado. Si queremos evitar que esto ocurra, nos bastará con añadir el siguiente código al inicio de la función ‘registrar’:
if ( ! ( wp_is_post_revision ( $post_id ) ) || wp_is_post_autosave ( $post_id) ) {
return;
}
Hemos aprendido qué son los WordPress hooks y cómo utilizar acciones. De esta manera, podemos emplear las múltiples acciones que tiene WordPress predefinidas para ejecutar nuestro código personalizado cuando ocurra un evento.
Próximamente veremos cómo construir acciones con eventos personalizados y cómo utilizar filtros o WordPress filters. Si quieres saber más sobre WordPress, te recomiendo que te pases por la sección que tenemos dedicada a esta temática, donde podrás aprender un montón de cosas sobre este magnífico CRM.
Espero que te haya servido de ayuda. Si quieres aportar algo, por favor, no dudes en dejarme un comentario en esta publicación.
¡Te espero en el siguiente artículo!
En este artículo, aprenderás qué es el Lazy Loading y cómo implementarlo fácilmente en tu… Leer más
En esta guía práctica, te explicamos qué es el presupuesto de rastreo, por qué es… Leer más
¿Alguna vez te has encontrado con un mensaje que te invita a actuar, ya sea… Leer más
Una de las preguntas más comunes entre los desarrolladores web que comienzan a usar JavaScript… Leer más
Descubre qué es y para qué sirve la preimpresión digital para conseguir una buena impresión… Leer más
Ampliamos información para las redes sociales. Descubre cómo gestionar correctamente los consentimientos necesarios en las… Leer más