Suporte » Plugins » Exibir notícias por ordem de “importância” (pra dar destaque)

  • Resolvido pedropapito

    (@pedropapito)


    Procuro um plugin (acredito que isso deve ser feito atraves de plugin, e tambem acredito que exista) que faça com que as notícias sejam exibidas por ordem de “importância” (setada pelo editor), ao invés de serem exibidas em ordem de publicação. Alguém dá uma luz, por favor?

Visualizando 15 respostas - 1 até 15 (de um total de 28)
  • Eu não conhecia este recurso, mas o próprio wordpress tem um recurso nativo, desde a versão 2.7, de fixar post.

    Porém, ao fazer testes, o post fixado não vai para o topo.

    Preciso adicionar algo ao código do theme?

    caro pedropapito, vc pode usar o plugin category post 3.1+o eletro widget.

    Moderador Leo Baiano

    (@leobaiano)

    Parceiro, os posts fixos do wordpress são do tipo stickys, para chama-los insira na query_posts do seu tema ‘post__in’ => get_option(‘sticky_posts’).

    Hum…
    Leobaiano, tens como explicar melhor a inclusão da chamada dos stickys? Não entendo muito de PHP, mas se tiver que fazer manualmente, assim farei. Por isso, se puderes explicar melhor, eu agradeço 😉

    Moderador Leo Baiano

    (@leobaiano)

    Parceiro, cria sua query_posts assim:

    query_posts(array(
    	'post__in' => get_option('sticky_posts'),
    	'post_status' => 'publish',
    	'orderby' => rand,
    	'posts_per_page' => 3,
    	caller_get_posts'=> 1
    	));

    Depois é só fazer o loop normalmente. No exemplo acima só vai exibir os ultimos 3 posts, para alterar mude 3 para a quantidade desejada em posts_per_page.

    Não sei onde encaixar isso… Me ajude?

    No theme, é exibido o primeiro post, com título, imagem, resumo, autor e data, conforme o código abaixo:

    <?php $recent = new WP_Query("cat=".get_theme_mod('box1cat')."&showposts=1"); while($recent->have_posts()) : $recent->the_post();?>
        <h1><a href="<?php echo get_category_link(get_theme_mod('box1cat')); ?>" rel="bookmark"><?php echo cat_id_to_name(get_theme_mod('box1cat')); ?></a></h1>
        <h2><a href="<?php the_permalink(); ?>" rel="bookmark">
          <?php the_title(); ?>
          </a></h2>
        <div class="postboxbyline">
          por <?php the_author_posts_link(); ?>
          em
          <?php the_time('j/M') ?>
        </div>
        <div class="midthumb">
          <?php tj_thumbnail('boxleftthumbw', 'boxleftthumbh'); ?>
        </div>
          <?php the_content_limit('190'); ?>
        <div class="clear"></div>
        <?php endwhile; ?>
        <div class="more"><?php _e('Mais', 'themejunkie'); ?> &raquo;</div>

    Abaixo disso são exibidos os demais posts, mas apenas os títulos:

    <ul>
          <?php $recent = new WP_Query("cat=".get_theme_mod('box1cat')."&offset=1&showposts=".get_theme_mod('list1')); while($recent->have_posts()) : $recent->the_post();?>
          <li><a href="<?php the_permalink(); ?>" rel="bookmark">
            <?php the_title(); ?>
            </a></li>
          <?php endwhile; ?>
        </ul>

    O que quero é que seja exibido o sticky post, se houver, desta mesma forma… Preicso muito dessa mãozinha!

    Obrigado!

    $sticky=get_option('sticky_posts');
    query_posts('p=' . $sticky[0]);

    enapupe, onde coloco isso?

    Moderador Leo Baiano

    (@leobaiano)

    Coloca o código dentro de onde instancia um novo objeto WP_query(), tenta assim, na substitui a primeira linha do segundo código que você postou, onde chama os posts de determinada categoria e exibi só o titulo, pelo código abaixo:

    <?php
    $recent = new WP_Query("cat=".get_theme_mod('box1cat')."&post__in=".get_option('sticky_posts')."&offset=1&showposts=".get_theme_mod('list1')); while($recent->have_posts()) : $recent->the_post();
    ?>

    O que fiz acima foi acrescentar o post__in chamando o get_option(‘stick_posts’)

    Não deu certo leobaiano… Retorna o erro:

    Warning: array_map() [function.array-map]: Argument #2 should be an array in /home/clickcamboriu/www/wp-includes/query.php on line 1823

    Warning: implode() [function.implode]: Invalid arguments passed in /home/clickcamboriu/www/wp-includes/query.php on line 1823

    Eu consegui fazer funcionar desta maneira:

    <?php $sticky = get_option('sticky_posts'); ?>
    <?php $recent = new WP_Query("cat=".get_theme_mod('box1cat')."&p=".$sticky[0]); while($recent->have_posts()) : $recent->the_post();?>

    O que vai dentro do parênteses, $sticky[0], é a refência do sticky post, onde 0 é o primeiro, 1 é o segundo, e assim por diante.

    Eu queria saber se tem como selecionar o sticky post referente à uma categoria específica.

    Neste caso, a categoria está setada como “cat=”.get_theme_mod(‘box1cat’) (que eu defino no admin do theme), mas não está exibindo o sticky post referete àquela categoria, e sim o sticky post que eu marquei por primeiro.

    Moderador Leo Baiano

    (@leobaiano)

    É que na verdade os sticky posts são posts fixos, eles não deveriam levar em conta a categoria e sim a ordem que foram marcados.

    Você quer listar os posts de uma categoria só que ao invés de lista-los na ordem cronológica quer listar por uma ordem de importância…

    Estudando seu caso imagino uma solução que integre o orderby=meta_value junto com o meta_key e meta_value. Nunca usei mas pela documentação você pode ordenar os posts com base em um meta_value, então você criaria um custom filds, marcaria os posts por importância e mandaria o query_posts odernar com base neste custom fields.

    Da uma olhada no parametro order e depois em custom fields como parametros:

    http://codex.wordpress.org/Function_Reference/query_posts#Orderby_Parameters

    eu me quebrando aqui pra fazer isso, e a solução é ridícula de fácil!!!

    cara, é isso mesmo! Problema resolvido hahaha…

    Mas não vou colocar o tópico como resolvido, pois se surgir alguma eventual dúvida durante o desenvolvimento aqui, voltarei neste mesmo tópico.

    Moderador Leo Baiano

    (@leobaiano)

    Quando conseguir posta aqui como ficou seu código pra servir de referência futura, pois como falei pela lógica esta parece a solução mais na prática ainda não tentei.

Visualizando 15 respostas - 1 até 15 (de um total de 28)
  • O tópico ‘Exibir notícias por ordem de “importância” (pra dar destaque)’ está fechado para novas respostas.