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.
Deja una respuesta