カスタム投稿内でカスタムフィールの値でソート
-
料理教室というカスタムポストタイプを作成し、タクソノミーとしてイタリアン、中華、和食と分類、
それぞれのカスタムフィールドに都市(city)、開催日(date) 会場(place)を設定しました。
実現したいのは各料理(タクソノミー)毎に教室開催スケジュールを表示したく、
それぞれ都市(city)毎に、さらに開催日(date) 順で羅列したいのですが、
こちらを参考にカスタムフィールド:都市(city)毎に一覧にするところまではできましたが
さらに開催日(date)でソートする方法がどうしても見つかりません。
どなたかご教授をお願致します。カスタムポストタイプ(seminar_schedule)
タクソノミー(seminar_category)
ターム:イタリアン(seminar_italian)、中華(seminar_chinese)、和食(seminar_japanese)
カスタムフィールド: 都市(city)、開催日(date) 会場(place)、表示したいのは下記の通りです。
料理教室開催日予定 ー イタリアン
—————————
東京
—————————
1月1日 東京プリンスホテル
2月2日 ホテルオークラ東京
3月3日 パークホテル東京
—————————
大阪
—————————
1月1日 ホテル日航大阪
2月2日 帝国ホテル大阪
3月3日 ホテルニューオータニ大阪
—————————
名古屋
—————————
1月1日 名古屋東急ホテル
2月2日 ヒルトン名古屋
3月3日 ANAクラウンプラザ現在のコードは下記ですが、これでは都市別にはリストされるものの表示順は投稿日順となります。
<?php $args = array( 'post_type' => 'seminar_schedule', 'tax_query' => array( array( 'taxonomy' => 'seminar_category', 'field' => 'slug', 'terms' => 'seminar_italian' ) ) ); $results = get_posts( $args ); $children = array(); if ( $results ) { foreach ( $results as $post ) { $city = get_post_meta($post->ID, 'city', true); if ( $city ) { $children[$city][] = $post; } } if ( $children ) { ?> <ul class="seminar_list"> <?php foreach ( $children as $city => $classified_children ) { ?> <li class="city"><?php echo esc_html( $city ); ?> <?php foreach ( $classified_children as $post ) { ?> <dl> <?php $date = get_post_meta($post->ID, 'date', true); $place = get_post_meta($post->ID, 'place', true); ?> <dt>日時:</dt><dd><?php echo $date; ?></dd> <dt>会場:</dt><dd><?php echo $place; ?></dd> </dl> <?php } ?> </li> <?php }} ?> </ul> <?php } ?>
- トピック「カスタム投稿内でカスタムフィールの値でソート」には新たに返信することはできません。