Assine:
RSS do Blog...

====================================================
Howto:  Como gerar um menu agrupando as postagem por ano e mês
====================================================

A idéia é fazer um menu assim:

2009

  • Maio
  • Abril
  • Março
  • Fevereiro
  • Janeiro

2008

  • Dezembro
  • Novembro

O código é simples:

<ul>

<?php
/**/
$years = $wpdb->get_col("SELECT DISTINCT YEAR(post_date)
FROM $wpdb->posts WHERE post_status = "publish"
AND post_type = "post" ORDER BY post_date DESC");
foreach($years as $year) :
?>

<li><a href="<?php echo get_year_link($year); ?> ">
<?php echo $year; ?></a>

<ul>
<? $months = $wpdb->get_col("SELECT DISTINCT MONTH(post_date)
FROM $wpdb->posts WHERE post_status = "publish"
AND post_type = "post" AND YEAR(post_date) = "".$year.""
ORDER BY post_date DESC");
foreach($months as $month) :
?>

<li><a href="<?php echo get_month_link($year, $month); ?>">
<?php echo date( "F", mktime(0, 0, 0, $month) );?></a></li>
<?php endforeach;?>

</ul>
</li>

<?php endforeach; ?>
</ul>

Veja também...

  1. Howto: WordPress: Agrupando posts por mês
  2. Howto: WordPress – Como retornar somente posts com a data de publicação igual a data atual?
  3. Exec-PHP – Executar códigos PHP direto na edição de posts e pages no WordPress
  4. Howto WordPress: Redirecionar para a lista de posts logo após salvar a postagem
  5. Integrando o SlideShowPro ao WordPress

Related posts brought to you by Yet Another Related Posts Plugin.

One Response to “Listar posts agrupados por ano no WordPress”

  1. Henrique says:

    Bacana o exemplo
    Saberia me dizer como faço para agrupar os posts por ano, exibindo o título deles e filtrando por uma determinada categoria? Estou tentando isso há dias e não consigo.
    Exemplo:
    2010
    Construindo o Saber
    SOS Cachoeira
    Diagnóstico Laticínio – SEBRAE
    2009
    Planejamento de Marketing
    Curso de Logística e Supply Chain

Leave a Reply