Suporte » Desenvolvendo com WordPress » Personalizar o ultimo post do loop

  • Resolvido brunofilipevf

    (@brunofilipevf)


    Opa galera,estou com uma dúvida que me encuca e não tenho a menor ideia de como resolver.
    Queria que no loop das postagens, o ultimo post(não é o primeiro do topo, o ultimo mesmo) fica-se de uma maneira diferente que irei definir no css.
    Alguém poderia me ajudar a resolver?

    Segue o código q estou usando pra fazer o loop atual:

    <?php
        $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
        query_posts("category_name=$categoria & showposts=$limite & paged=$paged");
        if(have_posts()) : while(have_posts()) : the_post();
    ?>

    Abraço!

Visualizando 12 respostas - 1 até 12 (de um total de 12)
  • Vc deve adicionar um contado e criar uma class para a div com este contador, depois basta personaliza o post com a class gerada
    Ficaria + ou – assim

    <?php
        $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
        query_posts("category_name=$categoria & showposts=$limite & paged=$paged");
    $n = 0;
        if(have_posts()) : while(have_posts()) : the_post();
    $n++;
    ?>
    
    <div class="post <?php echo "post-$n"; ?> "

    Com isso irá gerar vários post e cada um com uma class numerada tipo
    post-1
    post-2
    post-3
    post-4

    Então agora é só personalizar o ultimo post

    po cara, vlw.. ajudou muito. ;]

    só uma duvida, teria como fazer que ao invés de contar 1 a 20 … conta-se de 20 a 1, ou seja, geraria de forma decrescente?

    sendo antes:

    post-1
    post-3
    post-2

    ficando:

    post-18
    post-19
    post-20

    Sim, é só fazer ao invés de um incremento fazer um decremento assim

    <?php
        $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
        query_posts("category_name=$categoria & showposts=$limite & paged=$paged");
    $n = 20;
        if(have_posts()) : while(have_posts()) : the_post();
    $n--;
    ?>

    eu ja fiz isso, mas n chega bem ao que eu quero…

    sendo antes:

    post-1
    post-3
    post-2

    ficando:

    post-18
    post-19
    post-20

    Da forma que mostrei acima se eu não me engano fica
    post-19
    post-18
    post-17

    então se quer que comece com 20 é só colocar 21 para $n, mas a ordem é essa que descrevi mesmo.

    intão, ele começa em decrescente, mas não de baixo pra cima..
    post-20
    post-19
    post-18

    oq preciso é q fique

    post-18
    post-19
    post-20

    Acho que eu tenho uma solução melhor para vc, veja se isso funciona melhor.

    Faça o loop assim

    <?php
        $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
        query_posts("category_name=$categoria & showposts=$limite & paged=$paged");
    $n = $wp_query->post_count;
        if(have_posts()) : while(have_posts()) : the_post();
    --$n;
    ?>
    
    <div class="<?php if ($n == 0 ) { echo 'post post-last'; } else { echo 'post'; } ?>"

    Desta forma que coloquei agora vc deve personalizar a class post-last e não importa agora quantos posts estão sendo exibidos, seja 10, 20, ou 1 sempre o ultimo post terá essa class.

    velho, funcionou mesmo.. mt obrigado de verdade.

    Que bom que funcionou, pensei agora em fazer assim porque em páginas que não tenham todos os post sendo exibidos a sua personalização não iria funcionar.

    Porque imagina vc tendo 6 posts por página e tendo só 8 post para exibir, então na segunda página sua personalização não seria aplicada ao ultimo post porque ele teria a contagem de post-2

    desta forma que fiz agora não importa quantos existem, o ultimo sempre será o ultimo com a class post-last

    bom valeu abraços

    Myst1010, seria possível me ajudar neste duvida aqui?

    http://br.forums.wordpress.org/topic/filtrar-postagem-na-index

    Myst1010

    Velho show de bola!Obrigado

Visualizando 12 respostas - 1 até 12 (de um total de 12)
  • O tópico ‘Personalizar o ultimo post do loop’ está fechado para novas respostas.