web-dev-qa-db-ja.com

今月以降の投稿を取得する

イベントであるカスタム投稿タイプがあります。

これらのイベントをクエリして、今月以降のイベントのみを返すようにしています。だから、イベントは過去にあったかもしれませんが、それは同じ月になければなりません。イベント日はカスタム項目です。

だから今のところ私は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);
1
Corey

日付情報がカスタムフィールドに保存されている場合は、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を "今月の初日"に変更しなければなりません。

1
Marek

配列に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);
0
WisdmLabs