Crear nuestros propios hooks para WordPress

Home » Blog » Crear nuestros propios hooks para WordPress

Los hooks de WordPress son puntos dentro del código fuente de WordPress en donde se muestra información y con la que podemos interactuar. Tenemos 2 formas de hacerlo, creando un funcionamiento mediante las acciones o modificando un Hook en su salida, es decir el resultado será el mismo lo que pasa que podemos recoger ese valor y adaptarlo a nuestras necesidades.

Ejemplo de los 2 tipos de Hooks

En primer lugar vamos a crear una acción nueva, que cuando recibamos un comentario nuevo nos mande un email:

add_action('comment_post','email_nuevo_coment');
function email_nuevo_coment(){
wp_mail('[email protected]','nuevo comentario', 'Tienes un nuevo comentario en tu blog')
}

Esta acción no modifica el funcionamiento de WordPress, solo añade una funcionalidad nueva.

Por otro lado vamos a modificar la salida del title de nuestro sitio, añadiéndole al final nuestra marca.

add_filter( 'wp_title', 'anadir_imacreste' );
function anadir_imacreste($title)
{ 
return $title . " | imacreste.com"; 
}

Como podemos observar recogemos $title y le añadimos una coletilla.

Crear nuestros propios Hooks

function prueba_action(){   
do_action('prueba_action');   
}
function texto_salida(){ 
$url=apply_filters( 'mostrar_url', esc_url( home_url( '/' ) ) );  
echo '<p>Creado por: .'.$url.'</p>';    
}
add_action('pre_footer','texto_salida', 5);

En este ejemplo hemos dado de alta un hook de acción:

function prueba_action(){    
do_action('prueba_action');    
}

Y en el siguiente código lo que hacemos es usarlo, haciendo que muestre por pantalla «creado por y la URL del sitio». Solo falta añadir en el tema en qué lugar queremos colocar este Hook de la siguiente forma:

<?php pre_footer(); ?>

Por ejemplo podemos ponerlo en el footer, para que al final tengamos el clásico creado por.

Si nos fijamos en el código fuente anterior, tenemos:

$url=apply_filters( 'mostrar_url', esc_url( home_url( '/' ) ) );

Para obtener el resultado esperado bastaría con: esc_url( home_url( ‘/’ ) ), pero hemos aprovechado a introducir un Hook de tipo filtro, y que permitirá de forma sencilla y sin modificar el funcionamiento general modificar la salida de la URL.

function cambiar_url_salida($url)
{
 $url = "prueba.com";
 return $url;
}
add_filter('mostrar_url', 'cambiar_url_salida');

En este ejemplo modificamos la URl por http://prueba.es pero podríamos no modificar la url y añadirle solo html, como por ejemplo:

function cambiar_url_salida($url)
{
 $url = "<a href='".$url."'>".$url."</a>";
 return $url;
}
add_filter('mostrar_url', 'cambiar_url_salida');

En este ejemplo mostramos la URL por defecto pero modificamos su salida añadiéndole un enlace.

Y esto es todo, si creamos plugins o temas podemos habilitar nuestros propios Hooks para que la edición del código se pueda realizar en el fichero functions.php.


Categorías


Foto de Iñigo Mezo Alvarez

IÑIGO MEZO ALVAREZ (IMAcreste)


Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Las reseñas son opiniones que las personas dejan en la página local de Google. Si son positivas, estas reseñas ayudarán a mejorar la confianza y credibilidad de una marca.

Participa en nuestro sorteo enviando un email con tu nombre y el asunto «Sorteo AUDITORÍA SEO». Se realizara un sorteo cada mes.