web-dev-qa-db-ja.com

高度なカスタムフィールドを使用して年と月ごとにイベントを一覧表示する方法

カスタムの日付フィールド(YYMMDD)を持つカスタム投稿タイプ "Kalender_item"があります。私は年と月によってソートされたページ上のすべての投稿をリストしたいです。

例えば:

  • 2012年11月(2012年11月に発生するすべてのイベント)
  • 2012年12月(2012年12月に発生するすべてのイベント)

等々...

私はそう注文することに成功しました

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

これで私の投稿はすべて正しい順序で表示されます。今、私は月年でそれらをグループ化し、各グループのタイトルとして月年を表示したいです。結果を年月ごとにグループ化する方法

4
Mister Melotte

これであなたは始めるでしょう:

<?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