単にカスタムフィールドの日付順で並べるからカスタムフィールドのパラメータを使って表示させることができます。
$args = array(
'post_type' => 'match', // 任意のカスタム投稿タイプを指定
'posts_per_page' => -1, // 1ページに表示する最大投稿数を指定、-1は全てを表示
'order' => 'DESC', // 降順でソート
'orderby'=>'meta_value', // カスタムフィールドで並べる
'meta_key' => 'time', //カスタムフィールドのキー
);
関数リファレンス/WP Query
カスタムフィールドのパラメータ
https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/WP_Query#.E3.82.AB.E3.82.B9.E3.82.BF.E3.83.A0.E3.83.95.E3.82.A3.E3.83.BC.E3.83.AB.E3.83.89.E3.81.AE.E3.83.91.E3.83.A9.E3.83.A1.E3.83.BC.E3.82.BF
>月ごとに
というのが、見出しをつけるという意味なら、昔自分が質問したものが参考になると思います。
投稿一覧に年と月の見出しを付けたい
https://teratail.com/questions/50506
質問で参考にした
「WordPress 投稿一覧に年と月の見出しを付ける方法」
https://hirashimatakumi.com/blog/3351.html
// 投稿一覧に年と月の見出しを付ける
$args = array(
'post_type' => 'match', // 任意のカスタム投稿タイプを指定
'posts_per_page' => -1, // 1ページに表示する最大投稿数を指定、-1は全てを表示
'order' => 'DESC', // 降順でソート
'orderby'=>'meta_value', // カスタムフィールドで並べる
'meta_key' => 'time', //カスタムフィールドのキー
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ):
$post_year = false; // 年の比較用変数の初期化
$post_month = false; // 月の比較用変数の初期化
echo '<h1>投稿一覧</h1>';
while ( $the_query->have_posts() ): $the_query->the_post();
$time = get_field( 'time' );
$time_year = date( 'Y', strtotime( $time ) ); //年
$time_month = date( 'm', strtotime( $time ) ); //月
if ( $post_month != $time_month ) { // 比較の値と投稿月が異なる場合に以下を表示
if ( $post_month !== false ) { // 比較の値と投稿月が異なる場合に以下を表示
echo '</ul>';
}
if ( $post_year != $time_year ) { // 比較の値と投稿年が異なる場合に年を表示
echo '<h2>' . $time_year . '年</h2>'; //投稿の年を表示
}
echo '<h3>' . $time_month . '月</h3>'; //投稿の月を表示
echo '<ul>';
}
echo '<li><a href="' . get_the_permalink() . '">' . get_the_title() . '</a></li>'; // 投稿のリンクとタイトルを表示
$post_year = $time_year; // 年月の比較用の変数に今の投稿の年月を代入
$post_month = $time_month; // 年月の比較用の変数に今の投稿の年月を代入
endwhile;
wp_reset_postdata();
echo '</ul>';
endif;
>対象となる投稿
これがなにを意味するのか分からなかったのと、表示方法は参考にしたサイトのものを踏襲しています。
参考まで。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。