Suporte » Outros assuntos » Gerar post aleatório através de uma nuvem de tags

  • Eu tenho uma nuvem de tags, de um plugin(WP-Cumulus), gostaria que ela gerasse aleatoriamente os posts relacionados a ela. Cada vez que eu clicar naquela tag(que tem mais de um post ligado a ela), ela me mostrasse apenas um desses posts de forma randômica.
    Agradeço desde de já a ajuda!

Visualizando 10 respostas - 1 até 10 (de um total de 10)
  • Confesso que não acho uma boa idéia fazer isso, mas se quiser mesmo fazer.
    Basta adicionar ao seu function

    function wo_random_post_tag($query){
    	if ($query->is_tag){
    		$query->set('orderby', 'rand');
    		$query->set('showposts', 1);
    	}
    	return $query;
    }
    add_filter('pre_get_posts','wo_random_post_tag');

    Criador do tópico arthurteixeira

    (@arthurteixeira)

    Muito obrigado, funcionou exatamento como eu esperava.

    Gostaria apenas de saber porque não é uma boa idéia.

    Não é nada em relação a desempenho ou algo do tipo, não se preocupe.

    Só não acho uma boa idéia porque mudar o funcionamento padrão de um recurso que as pessoas já estão acostumadas, ou deveriam estar.

    E esse tipo de mudança pode trazer confusão aos seus leitores, qualquer coisa que traga confusão ou perda de tempo prejudica o retorno do visitante ao site.

    Imagina um leigo ao clicar na tag e só um post aparece, ai ele vai para outra tag e só mais um outro post aparece.

    A princípio ele pode achar que só tem um único post mesmo nesta tag e não procurar mais, visitando todas as suas tags uma a uma ele pode achar que vc tem menos conteúdo do que realmente tem.

    Pra ser sincero acho que até um usuário acostumado com o sistema de tags vai pensar a mesma coisa, mesmo que nas suas tags tenha a contagem de posts isso pode trazer confusão.

    Criador do tópico arthurteixeira

    (@arthurteixeira)

    Obrigado pela ajuda. É um projeto de um trabalho que a pessoa pediu exatamente isso.

    Aproveito sua prontidão para tirar mais uma dúvida:

    Como eu faço para exibir esse post selecionado direto ao clicar na tag, aparecendo assim tudo, inclusive a área onde fazem os comentários, porque no momento ele mostra apenas um post ao clicar na tag, mas nao entra no post em si.

    Agradeço desde já!

    A essa é muito fácil, manda uma mais difícil vai rsrsrsrs.

    Adiciona ao function.php logo a baixo da outra função

    Créditos: http://wpsnipp.com
    Link direto: http://wpsnipp.com/index.php/cat/redirect-to-a-single-post-if-one-post-in-category-or-tag/

    function redirect_to_post(){
        global $wp_query;
        if( is_tag() && $wp_query->post_count == 1 ){
            the_post();
            $post_url = get_permalink();
            wp_redirect( $post_url );
        }
    } add_action('template_redirect', 'redirect_to_post');

    Criador do tópico arthurteixeira

    (@arthurteixeira)

    Coloquei esse codigo e quando dei update deu a seguinte mensagem: “Parse error: syntax error, unexpected ‘;’ in /home/anatomia/public_html/wp-content/themes/twentyten/functions.php on line 521”

    E agora não consigo entrar em nenhuma área do site que dá a mesma mensagem. O que eu faço agora?

    Entre por ftp e baixe o arquivo function.php e vá nesta linha 521 e tente corrigir o código.

    Vc colocou ele de alguma forma errada que está dando erro com o ;

    delete as funções e coloque assim

    function wo_random_post_tag($query){
    	if ($query->is_tag){
    		$query->set('orderby', 'rand');
    		$query->set('showposts', 1);
    	}
    	return $query;
    }
    add_filter('pre_get_posts','wo_random_post_tag');
    
    function redirect_to_post(){
        global $wp_query;
        if( is_tag() && $wp_query->post_count == 1 ){
            the_post();
            $post_url = get_permalink();
            wp_redirect( $post_url );
        }
    }
    add_action('template_redirect', 'redirect_to_post');

    Depois envie novamente o arquivo por ftp

    Criador do tópico arthurteixeira

    (@arthurteixeira)

    Cara suas soluções foram todas ótimas e muito rápidas.
    Tenho mais uma dúvida: como eu faço para atualizar o wordpress sem perder os códigos e tal, pq não da pra fazer o automático pois não usamos ftp e sim ssh.

    arthurteixeira ai eu vou ficar te devendo, nem sei o que seria ssh e eu só sei de atualizações via ftp ou automático pelo sistema.

    De qualquer forma faça uma backup de tudo que puder antes de tentar alguma coisa.

    Criador do tópico arthurteixeira

    (@arthurteixeira)

    Bom de qualquer forma obrigado, e eu consegui atualizar já.

    Sua ajuda foi fundamental na execução do meu trabalho=)

Visualizando 10 respostas - 1 até 10 (de um total de 10)
  • O tópico ‘Gerar post aleatório através de uma nuvem de tags’ está fechado para novas respostas.