日付でソートしてその年以降の記事のみ表示
ユーザが設定したカスタムフィールド「schedule_date」でソートして、現在の年より過去の記事は表示させないようにする。
「schedule_date」は Ymd の8桁の文字列。
ソートには
'orderby' => 'meta_value'
'order' => 'ASC/DESC',
'meta_key' => 'ソート対象のフィールド名',
で指定する。
条件判定は meta_query を使う。
<?php $posttype = 'schedule'; $args = array( 'posts_per_page' => -1, 'post_type' => $posttype, 'post_status' => 'publish', 'orderby' => 'meta_value', 'order' => 'ASC', 'meta_key' => 'schedule_date', 'meta_query' => array('key' => 'schedule_date', 'value' => date('Y').'0101', 'compare' => '>=', 'type' => 'DATE' ), ); $the_query = new WP_Query($args);
日付でソートしてその年の記事のみ表示
範囲指定の条件が2個以上の場合は relation を使う。
<?php
$posttype = 'schedule';
$args = array(
'posts_per_page' => -1,
'post_type' => $posttype,
'post_status' => 'publish',
'orderby' => 'meta_value',
'order' => 'ASC',
'meta_key' => 'schedule_date',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'schedule_date',
'value' => date('Y').'0101',
'compare' => '>=',
'type' => 'DATE'
),
array(
'key' => 'schedule_date',
'value' => date('Y').'1231',
'compare' => '<=',
'type' => 'DATE'
)
)
);
$the_query = new WP_Query($args);