Um dos novos recursos que adicionamos aqui no [wp24] é este recurso chamado “Explore“. Quando um usuário clica neste botão, eles são levados para um post aleatório do site. Anteriormente, queríamos apenas que os usuários fossem levados à página para exibir um post aleatório. Neste artigo, vamos mostrar-lhe como redirecionar usuários para um post aleatório no WordPress.
Abra o arquivo functions.php do seu tema, ou Plugin Específico do Site e cole 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; } }
É só isso e pronto. Agora crie um botão que link para “seudominio.com.br/random/” e o snippet acima vai cuidar do resto.
Explicação do snippet:
Este snippet primeiramente adiciona a variável “random“. Em seguida, ele usa o hook template_redirect do WordPress e diz se a variável “random” está lá, então, obtém um post do tipo “Post” de forma aleatória. Em seguida, ele faz um simples redirecionamento 307.
A razão pela qual o snippet usa o redirecionamento 307, é por ser um redirecionamento temporário. Os Browsers muitas vezes mantém o cache do redirecionamento 302, que é conhecido por redirecionamentos temporários.
Alguns bugs que encontramos
Se você estiver usando o plugin W3 Total Cache e tiver ativado o cache do banco de dados, então você precisa adicionar as seguintes regras na lista de exclusão.
/random/
/index.php?random=1
Se você estiver usando o plugin WordPress SEO do Yoast, então não use Redirecionar URLs feias para links permanentes limpos na área de Links Permanentes. Caso contrário, este código não vai funcionar.
Se você estiver tendo problemas com o redirecionamento indo para um erro 404 ao usar “seudominio.com.br/random/”, tente usar “seudominio.com.br/?random=1”.
Se quiser usar um plugin para fazer este redirecionamento, tente o Random Redirect. (Este plugin não é atualizado há algum tempo)
Agora você pode criar um pequeno botão Explore como o que temos em nosso site. Deixe sua opinião em um comentário abaixo e compartilhe este tutorial com seus amigos.
18 respostas
Your point of view caught my eye and was very interesting. Thanks. I have a question for you. https://accounts.binance.com/bg/register?ref=FIHEGIZ8
I am actually thankful to the owner of this website who has shared this wonderful post at here.
My homepage; vpn special coupon code 2024
My brother recommended I would possibly like this blog.
He used to be totally right. This submit actually made my
day. You can not imagine just how so much time I had spent for this information! Thanks!
Review my web page :: vpn 2024
п»їbest mexican online pharmacies: Mexican Pharmacy Online – mexican border pharmacies shipping to usa
top 10 pharmacies in india http://indiaph24.store/# online pharmacy india
top 10 pharmacies in india
https://canadaph24.pro/# certified canadian pharmacy
mexican pharmaceuticals online [url=http://mexicoph24.life/#]cheapest mexico drugs[/url] mexican rx online
pharmacies in mexico that ship to usa: Mexican Pharmacy Online – mexican drugstore online
http://indiaph24.store/# best india pharmacy
canadian drug pharmacy [url=https://canadaph24.pro/#]Certified Canadian Pharmacies[/url] canada drug pharmacy
benefits of tamoxifen: pct nolvadex – nolvadex pct
https://lisinopril.network/# zestril canada
buy cipro online without prescription [url=https://ciprofloxacin.tech/#]buy cipro[/url] buy cipro online without prescription
http://lisinopril.network/# lisinopril 40mg
buy cytotec over the counter [url=https://cytotec.club/#]Abortion pills online[/url] buy cytotec pills
cost generic propecia pill: buying propecia online – cost of cheap propecia price
https://nolvadex.life/# tamoxifen generic
https://cytotec.club/# buy cytotec
lisinopril prices: prinivil 2.5 mg – can i buy lisinopril over the counter in canada