イベントであるカスタム投稿タイプがあります。
これらのイベントをクエリして、今月以降のイベントのみを返すようにしています。だから、イベントは過去にあったかもしれませんが、それは同じ月になければなりません。イベント日はカスタム項目です。
だから今のところ私は8月またはそれ以降の月にあったイベントだけを望み、8月より前のイベントは望みません。
これが私の現在のクエリで、古いものから新しいものへと並んでいます。
$custom_post_type = 'event';
$args = array(
'post_type' => $custom_post_type,
'post_status' => 'publish',
'meta_key' => 'event_date_and_time',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'posts_per_page' => -1
);
$events = get_posts($args);
日付情報がカスタムフィールドに保存されている場合は、meta_query
を使用できます。このような:
$args = array(
'post_type' => $custom_post_type,
'posts_per_page' => -1,
'meta_query' => array(
array(
'key' => 'event_date_and_time',
'value' => current_time('Ymd'),
'compare' => '>='
)
),
'orderby' => 'meta_value_num',
'order' => 'ASC'
);
このコードでは、あなたの日付がYYYYMMDD形式(20150820)で保存されているとします。そしてそれは今日から未来への投稿を示しているので、あなたはvalue
を "今月の初日"に変更しなければなりません。
配列にmeta_query
引数を使用してください。
$custom_post_type = 'event';
$args = array(
'post_type' => $custom_post_type,
'post_status' => 'publish',
'meta_key' => 'event_date_and_time',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'posts_per_page' => -1
'meta_query' => array(
array(
'key' => 'event_date_and_time',
'value' => date("Y-m-1"); // starting from 1st of current month. This will change based on how you store dates.
'compare' => '>=',
'type' => 'NUMERIC,' // Let WordPress know we're working with numbers
)
)
);
$events = get_posts($args);