Hooks en WordPress | Adrenalina

Hooks en WordPress

Publicado Por | 14 junio , 2013 | Blog Adrenalina, SEO Técnico | One Comment

wordpress hooks

Si alguna vez te has preguntado como funciona un plugin de WordPress, la respuesta más común es mediante hooks. Así mismo, también se usan en gran medida para personalizar temas.

¿Pero, qué son los Hooks?

Los Hooks són una funcionalidad de WordPress que nos permite, a grandes rasgos, añadir o modificar el comportamiento habitual de éste sin la necesidad de modificar el código propio de WordPress.

Tipos de Hooks

Hay dos tipos de Hooks:

  • action hooks
  • filter hooks

Action hooks

Las acciones són los hooks que WordPress aplica en puntos específicos durante la ejecución, o cuando un evento especifico tiene lugar. Así, podremos definir funciones que se ejecuten en esos momentos.
Los action hooks los usaremos habitualmente para:

  • modificar datos en la bd
  • enviar un e-mail
  • modificar el front-end o el escritorio de administración.

Ejemplo

Queremos que nuestro WordPress nos envíe un email cuando se suba un post nuevo. Para ello crearemos nuestra función:

<?php
function email_me($post_ID)  { 
wp_mail( 'me@example.net', 'The subject', '<p>new post with id: </p>'.$post_ID ); 
return $post_ID;
?>

Y la aplicamos a el hook que nos interesa:

add_action('publish_post', 'email_me');

Filter hooks

Los filtros són los hooks que WordPress aplica para modificar diferentes tipos de texto antes de añadirlos a las base de datos o enviarlos al navegador.
Ejemplo:
Queremos que el email que enviamos sea interpretado como html. Para ello:

<?php
add_filter( 'wp_mail_content_type', 'set_html_content_type' );
wp_mail( 'me@example.net', 'The subject', '<p>The <em>HTML</em> message</p>' );
remove_filter( 'wp_mail_content_type', 'set_html_content_type' );
function set_html_content_type(){
return 'text/html';
}
?>

Desactivar filtros o acciones

En algunos casos, podemos encontrarnos en la necesidad de desactivar alguna acción o filtro, ya sea porqué la ha añadido un plugin u o para evitar conflictos (como veíamos en el ejemplo de filtros). Para ello usaremos:

remove_filter('filter_hook','filter_function') ;

o

remove_action('action_hook','action_function');

Prioridad del Hook

Tarde o temprano todos los desarrolladores de wordpress llegamos a una situación en la que varios plugins modifican un mismo Hook ocasionando algún problema. Para evitar estas situaciones podemos hacer uso de la prioridad del Hook para ordenar la aplicación de estos.
Por defecto un Hook usa una prioridad de 10, si la reducimos éste se aplicará antes que los que tienen un valor mayor.

add_action ( 'hook_name', 'your_function_name', [priority]);

Reutilización de funciones en los hooks

Una de las principales bondades de este sistema es la facilidad de reutilización de funciones que ya hubieramos definido anteriormente, o incluso fuera de WordPress, por que es tan simple como copiar/pegar. Sólo necesitaremos añadir el hook para que wordpress sepa donde aplicarla!

Autor: Lluis Torns

Estudiamos y analizamos su negocio en profundidad, definimos objetivos y planteamos la estrategia de marketing más adecuada centrándonos en conseguir cada uno de los objetivos propuestos. Solicita Presupuesto Ahora

Uso de cookies

En este sitio web utilizamos cookies propias y de terceros para mejorar nuestros servicios, para que usted tenga la mejor experiencia de usuario y analizar su visita. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.