web-dev-qa-db-fra.com

Obtenir des messages qui sont dans le mois en cours ou plus tard

J'ai un type de message personnalisé qui est un événement.

J'essaie d'interroger ces événements et de ne renvoyer que les événements du mois en cours ou plus tard. Donc, l'événement pourrait être dans le passé, mais il doit être dans le même mois. La date de l'événement est un champ personnalisé.

Donc, pour le moment, je ne voudrais que des événements qui ont eu lieu au mois d’août ou plus tard, et aucun événement avant le mois d’août.

Voici ma requête actuelle, du plus ancien au plus récent:

$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

Vous pouvez utiliser meta_query si vos informations de date sont enregistrées dans un champ personnalisé. Comme ça:

$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'
);

Ce code suppose que la date est enregistrée au format AAAAMMJJ (20150820). Et cela montre les messages d’aujourd’hui à l’avenir, vous devrez donc remplacer value par "premier jour du mois en cours".

1
Marek

Utilisez l'argument meta_query dans le tableau.

$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