Existe dos tipos de hook, los action hooks o acciones y los filter hooks o filtros.
Las acciones son 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 ese evento determinado. Los action hooks se utilizan habitualmente para modificar datos en la base de datos, enviar un e-mail, modificar el front-end o el escritorio de administración.
Ejemplo de Hook de acción
Necesitamos que cuando se haya publicado un nuevo post nos envíe un email. Para ello crearemos nuestra función en php, que nos envié un mail con el id del post creado.
Podemos crearlo en el archivo functions.php que trae cualquier plantilla wordpress
<?php function enviar_email($post_ID) { wp_mail( 'info@midominio.com', 'Asunto', '<p>Se ha publicado un post con id: </p>'.$post_ID ); return $post_ID; ?>
Luego aplicamos la función al hook publicar_post ya predeterminado en wordpress:
add_action('publish_post', 'enviar_email');
Los hook se pueden ver en:
- Hook acción http://codex.wordpre...ction_Reference
- Hook filtro http://codex.wordpre...ilter_Reference
add_action('comment_post', 'enviar_email');
Ejemplo de hook de filtro
Los filtros son los hooks que WordPress aplica para modificar diferentes tipos de texto antes de añadirlos a las base de datos o enviarlos al navegador.
Necesitamos que se envie un mail pero interpretado como html.
<?php function envia_html(){ return 'text/html'; } add_filter( 'wp_mail_content_type', 'envia_html' ); wp_mail( 'info@midominio.com', 'Asunto', '<h1>Esto es HTML</h1>' ); ?>
Para desactivar los hook se utiliza el comando remove:
remove_filter('filter_hook','filter_function') ; remove_action('action_hook','action_function');
Ahora algunos ejemplos e ideas Útiles que podemos utilizar.
Hook para Google Analytics
Muchos usan Google Analytics para poder medir las visitas de sus sitios web o blogs, para facilitar la tarea del usuario, un desarrollador puede crear un plugin que permita añadir el código de Google Analytics al blog sin la necesidad de entrar a editar o ver el código de la plantilla.
<?php function analytics() { ?> // Aquí el código de Analytics <?php } //Añadimos la funcion al footer add_action('wp_footer', 'analytics'); ?> Hook para modificar la cabecera El hook wp_head podemos modificarlo para que por ejemplo se añada una nueva etiqueta o una hoja de estilos, en la cabecera de la web. <?php function meta () { echo '<meta name="description" content="Esto es una descripción." />'; } add_action( 'wp_head', 'meta' );?>
Reutilización de funciones en los Hooks
Una de las principales ventajas de este sistema es la facilidad de reutilización de funciones que ya hubiéramos definido anteriormente, o incluso fuera de WordPress, por que es tan simple como copiar y pegar.
Siempre que la función esté escrita en pHp podremos utilizarla en cualquier hook, sólo necesitaremos añadir el hook para que wordpress sepa donde aplicarla.