Получить сообщения между двумя датами

У меня есть сообщения, которые содержат следующие пользовательские поля ACF: начальную дату и конечную дату в этом формате: Y-m-d H:i:s,

Я хочу получить все сообщения с начальной датой менее 24 часов назад и конечной датой менее чем за 24 часа, используя WP_Query,

Как мне это сделать?

0

Решение

Попробуйте этот фрагмент,

$args = array(
'post_type' => 'surf_reports',
'posts_per_page' => '1',
'date_query' => array(
array(
'after' => '24 hours ago'
)
)
);

(https://wordpress.stackexchange.com/questions/194352/only-display-post-if-published-in-last-24-hours)

ИЛИ ЖЕ

 // Run the query.
$expire_window = date('Y-m-d H:i:s', strtotime('1 day'));
$expiring_ads = new WP_Query( array(
'post_type'      => 'post',
'posts_per_page' => 5,
'no_found_rows'  => true,
'orderby'        => 'meta_value',
'order'          => 'ASC',
'meta_query'     => array(
'relation' => 'AND',
array(
'key' => 'start_date',
'value' => $expire_window,
'compare' => '<='
),
array(
'key' => 'end_date',
'value' => date("Y-m-d H:i:s"),
'compare' => '>=',
'type' => 'DATETIME'
)
)
));

Надеюсь, это поможет вам.

1

Другие решения

Вы можете сделать это с помощью meta_query — https://codex.wordpress.org/Class_Reference/WP_Meta_Query.

Простой пример:

$start = '2011-11-31';
$end = '2011-10-01';
$args = array(
'post_type' => 'my-event-type',
'posts_per_page' => -1,
'orderby' => 'meta_value',
'order' => 'ASC',
'meta_key' => '_my-datetime-from',
'meta_query' => array(
array(
'key' => '_my-datetime-from',
'value' => array( $start, $end ),
'compare' => 'BETWEEN',
'type' => 'DATE'
)
)
);
// Make the query
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector