Сравнение временных меток в WP_Query - PullRequest
0 голосов
/ 17 ноября 2011

Я не могу понять, как сравнивать временные метки в WP_query.На сайте классы / события вводятся как посты с мета-добавлением на дату их начала.В calendar_functions.php, $begtime определяется как метка времени для даты начала класса / события (не дата создания сообщения), а $ today определяется как метка времени сегодня.Я протестировал оба из них, и они возвращают правильные значения.

Приведенный ниже код работает нормально, он отображает случайный класс / событие ... за исключением того, что отображаются прошлые классы / события.Я хочу иметь возможность отображать только элементы, которые происходят с сегодняшнего дня.Это не вариант, чтобы войти и удалить классы / события, которые уже произошли.Не уверен, как обработать часть >=.

<?php include('calendar_functions.php'); ?>
<?php $my_query = new WP_Query('"$begtime >= $today"&posts_per_page=1&cat=5,43&orderby=rand');
if (have_posts()) : while ($my_query->have_posts()) : $my_query->the_post();
$do_not_duplicate = $post->ID;
?>

Мне также нужно будет сравнить два набора дат, так как некоторые классы имеют два сеанса, например.$begtime >= $today -or- $begtime2 >= $today.($begtime2 также уже определен).

1 Ответ

0 голосов
/ 17 ноября 2011

тебе нужно что-то вроде этого.

function filter_where( $where = '' ) {
    // posts  30 to 60 days old
    $where .= " AND post_date >= '" . date('Y-m-d', strtotime('-60 days')) . "'" . " AND post_date <= '" . date('Y-m-d', strtotime('-30 days')) . "'";
    return $where;
}

add_filter( 'posts_where', 'filter_where' );
$query = new WP_Query( $query_string );
remove_filter( 'posts_where', 'filter_where' );

http://codex.wordpress.org/Class_Reference/WP_Query#Time_Parameters

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...