2010-11-22 5 views
0

Je veux personnaliser mes archives pour trier par mois, mais si c'était dans l'année précédente pour se regrouper dans une catégorie annuelle. En ce moment j'ai:Comment pouvez-vous personnaliser wp_get_archives(); avec Wordpress Archives

<ul><?php wp_get_archives('type=postbypost&limit=10'); ?></ul> 

Cela montre les 10 derniers messages. Je sais que ce qui suit triera par mois:

<ul><?php wp_get_archives('type=monthly'); ?></ul> 

Mais comment puis-je à trier par année lorsque le mois est moins récent que 12? Je veux que ça ressemble à ce qui suit:

  • Mars 2010
  • Février 2010
  • janvier 2010

Merci à l'avance.

Répondre

2

Je ne sais pas s'il y a un moyen de le faire builtin, j'utiliser une fonction avec requête personnalisée comme ceci:

SELECT COUNT(ID) posts, YEAR(post_date) y, MONTH(post_date) m 
    FROM $wpdb->posts 
    WHERE post_status = 'publish' 
GROUP BY y, m 
    HAVING y = YEAR(NOW()) 
UNION 
    SELECT COUNT(ID), YEAR(post_date) y, 0 
    FROM $wpdb->posts 
    WHERE post_status = 'publish' 
GROUP BY y 
    HAVING y < YEAR(NOW()) 
ORDER BY y DESC, m DESC; 

puis formatez les résultats avec des liens et tous.

+0

La seule façon pour Kemp de le faire est d'utiliser un plugin. – Damien

+0

J'ai commencé à écrire mon propre plugin mais j'ai fini par en trouver un qui fait exactement ce que je veux. Pour les autres intéressés, consultez http://wordpress.org/extend/plugins/collapsing-archives/screenshots/ – Carson

+0

cela permet également aux utilisateurs de spécifier des types de messages personnalisés qui ne sont pas répertoriés par wp_get_archives –

Questions connexes