Saltar al contenido
Codif铆ca.me | Desarrollo web | Programaci贸n

C贸mo redirigir o redireccionar a una publicaci贸n aleatoria en WordPress

28 octubre, 2019

Comparto este sencillo c贸digo que nos vale para poder redirigir o redireccionar a una url random de tu WordPress, despu茅s puedes incluirlo como un bot贸n que lance autom谩ticamente una url random o cualquier otra utilidad rara que conozcas.

El c贸digo ser铆a as铆:

El c贸digo para devolver una url random

add_action('init','random_add_rewrite');
 
function random_add_rewrite() {
       global $wp;
       $wp->add_query_var('random');
       add_rewrite_rule('random/?$', 'index.php?random=1', 'top');
}
 
add_action('template_redirect','random_template');
 
function random_template() {
       if (get_query_var('random') == 1) {
               $posts = get_posts('post_type=post&orderby=rand&numberposts=1');
               foreach($posts as $post) {
                       $link = get_permalink($post);
               }
               wp_redirect($link,307);
               exit;
       }
}

C贸mo lo a帽ado a mi WordPress

Los pasos que tienes que dar son sencillos, copias el c贸digo dentro del fichero functions.php de tu theme, o si lo prefieres creas un plugin que llame a estas funciones.

C贸mo funciona

Utiliza la url /index.php?random=1 para hacer que se ejecute el c贸digo y te devuelva la url random que necesitas.

Solo tienes que enlazar o bien visitar tu url, y la funci贸n que acabas de a帽adir har谩 el resto.

tu-dominio.com/index.php?random=1

Problemas de cache

En el caso de que utilices plugins de cach茅 entonces es posible que almacene la devoluci贸n de la url y siempre te env铆e a la misma url hasta que se vuelva a borrar la cach茅.

Para que no tengas este problema con tu plugin de cach茅 a帽ade las urls en tu plugin a las urls que NO tienes que almacenar en la cach茅.


/index.php?random=1
/random/

Y listo, con esto tendr铆as tu flamante redireccionador de urls.

Rate this post