← WordPress

Como meter os ultimos comentários a aparecer primeiro?

Lida 2172 vezes

Offline

ragnarock 
Membro
Mensagens 208 Gostos 1
Feedback +1

Troféus totais: 27
Trófeus: (Ver todos)
Tenth year Anniversary Nineth year Anniversary Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2

Bom dia,
Ando aqui a martelar para tentar meter os últimos comentários primeiro no meu blog.

Andei a pesquisar e encontrei isto http://www.wpthemesplugin.com/how-to-rearrange-wordpress-comments-latest-on-top/ mas não fiquei muito satisfeito por ter de andar a mudar ficheiros de base do próprio wordpress, no entanto ao ler os comments vi la isto:

Citar
hi moses, you can get the same result by using array_reverse php function to the $comments array before comment loop in comments.php file.

pois isto já me agradou, até porque me pareceu mais simples.

ora no meu comments.php entre outras coisas que não acho muito relevantes, tenho la isto:
Código: [Seleccione]
<!-- You can start editing here. -->

<?php if ($comments) : ?>
<h3 id="comments"><?php comments_number('Sem coment&aacute;rios''1 coment&aacute;rio''% coment&aacute;rios' );?> a &#8220;<?php the_title(); ?>&#8221;</h3>

<ol class="commentlist">

<?php foreach ($comments as $comment) : ?>

<li class="<?php echo $oddcomment?>" id="comment-<?php comment_ID() ?>">
<cite><?php comment_author_link() ?></cite> Says:
<?php if ($comment->comment_approved == '0') : ?>
<em>O seu coment&aacute;rio aguarda modera&ccedil;&atilde;o.</em>
<?php endif; ?>
<br />

<small class="commentmetadata"><a href="#comment-<?php comment_ID() ?>" title=""><?php comment_date('F jS, Y'?> at <?php comment_time() ?></a> <?php edit_comment_link('e','',''); ?></small>

<?php comment_text() ?>

</li>

<?php
if ('alt' == $oddcomment$oddcomment '';
else $oddcomment 'alt';
?>


<?php endforeach;  ?>

</ol>

 <?php else :  ?>

  <?php if ('open' == $post->comment_status) : ?>

<?php else : ?>

<p class="nocomments">Coment&aacute;rios fechados.</p>

<?php endif; ?>
<?php endif; ?>

Segundo o comment pensei que bastase meter
Código: [Seleccione]
<?php array_reverse ($comments);?>antes do foreach , mas ou estou a fazer alguma coisa de errado (não percebo nada de especial de php) ou esta solução não funciona...

alguém me sabe ajudar?
Offline

Celso Azevedo 
Membro
Mensagens 3500 Gostos 38
Feedback +12

Troféus totais: 30
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

O próprio wordpress faz isso. Vai a Opções » Discussões » Onde diz "Outras opções de comentários" tem uma opção:

"Os comentários deverão ser visualizados com os [mais antigos / mais recentes]  no topo de cada página"
Offline

Pedro Lopes 
Beta tester
Mensagens 3568 Gostos 18
Feedback +6

Troféus totais: 32
Trófeus: (Ver todos)
Level 6 Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

O WordPress já faz isso, lol, vai as opções.

Mas senão, esse código penso que seja dentro do foreach e não antes.

Assim:

Código: [Seleccione]
<?php foreach (array_reverse($comments) as $comment) : ?>
Offline

ragnarock 
Membro
Mensagens 208 Gostos 1
Feedback +1

Troféus totais: 27
Trófeus: (Ver todos)
Tenth year Anniversary Nineth year Anniversary Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2

De facto tem la essa opção...mas n funciona... o theme deve ter de estar preparado para isso.
A solução do pedro lopes funcionou.

No entanto alguem sabe como faço pra meter o meu theme a responder a tal opçãozinha? (só pra ser meskinho e o theme ficar funcional)