Recentemente coloquei aqui no blog um botão na lateral que quando clicado carrega um post aleatoriamente. Este botão ajuda a melhorar o número de pageviews do blog, pois muitas pessoas que iriam sair da página acabam clicando para ver o resultado.

Pode ser que o conteúdo carregado não agrade o leitor, o que pode fazê-lo clicar novamente ou sair do blog mesmo assim. O fato é que este pequeno gesto está reduzindo a taxa de rejeição do blog consideravelmente.

Pois bem, se você tem um site que usa WordPress, veja como criar uma função capaz de direcionar o leitor para um post aleatório.

Abra o arquivo functions.php e adicione nele o seguinte código:

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;
}
}

Agora basta criar um botão ou ítem de menu e no link colocar o seguinte código:

<a href="<?php bloginfo('url'); ?>/?random=1">Post surpresa</a>

Agora é só testar, se tudo correu bem você será direcionado para um post aleatório cada vez que o link for clicado.

Nota: este código pode apresentar problemas de compatibilidade com o plugin W3 Total Cache e também com o Yoast’s WordPress SEO.

Dúvidas ou sugestões pode ser postadas nos comentários.

Mais sobre: , ,