Intereting Posts
Установить роль пользователя в зависимости от возраста от Facebook Вход в систему – WordPress Поле ввода Frontend Woocomerce Слишком много категорий резко замедляют мой сайт Показать количество сообщений и номер на текущей странице Структура перезаписи URL-адресов и структура навигации для пользовательского типа сообщений WordPress получить категории, в которых была запись, и только что удалены из Структура пользовательской постоянной WordPress с пользовательским типом и таксономией Как добавить символ ASCII после каждого последнего сообщения Получите боковые панели в зависимости от страницы Сделать роль пользователя фильтром Довольно URL-адреса и пользовательские типы сообщений Можно добавлять примечания к полям с использованием URL? изменение местоположения Как сделать уникальную страницу и показать ее на главной странице? Навигация в WordPress показывает только сообщение на первой странице, даже если на странице два

meta_query в диапазоне дат, используя массив значений

Как я могу выполнить запрос для возврата сообщения, если пользовательский массив полей содержит дату, которая находится в указанном диапазоне? Следующий запрос в основном состоит в том, что я за ним, но он не работает …

// the income_dates array looks like this // a:3:{i:0;s:10:"2014-02-01";i:1;s:10:"2014-03-01";i:2;s:10:"2014-03-29";} $today = date("Ymd"); $date1 = date("Ymd", strtotime($today . "-1 Month")); $date2 = date("Ymd", strtotime($today . "+1 Month")); $args = array( 'post_type' => 'income', 'meta_query' => array( array( 'key' => 'income_dates', 'value' => $date1, 'type' => 'date', 'compare' => '>' ), array( 'key' => 'income_dates', 'value' => $date2, 'type' => 'date', 'compare' => '<' ), ) ); 

Мне нужно было получить сообщение с событием типа и настраиваемым полем «дата» позже, чем сегодня, этот образец кода отлично работал для меня, я надеюсь, что это поможет кому-то в подобной ситуации.

  $today = date("Ymd"); $today1 = date("Ymd", strtotime("$today")); $custom_meta = array( array( 'key' => 'data_de_inicio', 'value'=>$today1, 'compare'=>'>', 'type'=>'date', ), ); $query = new WP_Query(array( 'post_type'=>'event', 'showposts'=>'3', 'orderby'=>'meta_value', 'meta_key'=>'data_de_inicio', 'order'=>'asc', 'meta_query'=>$custom_meta, ) ); по  $today = date("Ymd"); $today1 = date("Ymd", strtotime("$today")); $custom_meta = array( array( 'key' => 'data_de_inicio', 'value'=>$today1, 'compare'=>'>', 'type'=>'date', ), ); $query = new WP_Query(array( 'post_type'=>'event', 'showposts'=>'3', 'orderby'=>'meta_value', 'meta_key'=>'data_de_inicio', 'order'=>'asc', 'meta_query'=>$custom_meta, ) ); 

Я предлагаю не хранить мета-значения как array потому что (я думаю) не то, что вам нужно. Я думаю, что вам действительно нужно хранить каждое мета-значение по отдельности со своей собственной парой ключей / значений, а не с одним ключом с сериализованными значениями. Когда это делается таким образом, вы можете использовать сравнение BETWEEN :

 $today = date("Ymd"); //'BETWEEN' comparison with 'type' date only works with dates in format YYYYMMDD. //See http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters $date1 = date("YYYYMMDD", strtotime($today . "-1 Month")); $date2 = date("YYYYMMDD", strtotime($today . "+1 Month")); $args = array( 'post_type' => 'income', 'meta_query' => array( array( 'key' => 'income_dates', 'value' => array($date1,$date2), 'type' => 'date', 'compare' => 'BETWEEN' ), ) );