web-dev-qa-db-fra.com

Comment répertorier les événements par année et par mois à l'aide de champs personnalisés avancés?

J'ai un type de message personnalisé "Kalender_item" avec un champ de date personnalisé (AAMMJJ). Je souhaite répertorier tous les articles sur une page triés par année et par mois.

Par exemple:

  • Novembre 2012 (tous les événements survenus en novembre 2012)
  • Décembre 2012 (tous les événements survenus en décembre 2012)

Etc...

J'ai réussi à les commander comme si

$kalenderItems=query_posts('post_type=kalender_item&post_status=publish&meta_key=kalender_item_datum&orderby=meta_value');

Cela me donne tous mes messages dans le bon ordre. Maintenant, je veux les regrouper par mois année et afficher l'année mois comme titre pour chaque groupe. Comment regrouper mes résultats par année et par mois?

4
Mister Melotte

Cela devrait vous aider à démarrer:

<?php

$the_query = new WP_Query( array(
    'post_type'   => 'kalender_item',
    'post_status' => 'publish',
    'meta_key'    => 'kalender_item_datum',
    'orderby'     => 'meta_value'
) );

# This will hold what group we're in
$current_header = '';

# The Loop
while ( $the_query->have_posts() ) :
    $the_query->the_post();

    # get the datum for this post
    $temp_date = get_post_meta( get_the_ID(), 'kalender_item_datum', true );

    # If they aren't the same, we'll start a new group, which for now
    # just means setting a new heading
    if ( $temp_date != $current_header ) {
        $current_header = $temp_date;
        echo "<h2>$current_header</h2>";
    }

    # ... do normal loop stuff here

endwhile;

?>
3
Matthew Boynes