Intereting Posts
Получение связанных таксономий Как добавить медиафайлы из внешнего интерфейса в существующее сообщение и изменить название файла что является лучшим способом создания премиального плагина, а также защиты вашего кода Цитирование по пользовательской таксономии в одном шаблоне Каков допустимый формат номера телефона, принятый контакт-формой-7 Как я могу получить параметр имени, определенный в get_header? Поворот виджетами или блоками контента каждые х сек / мин Эхо-иерархический список почтовых данных из настраиваемых полей Пользовательский тип сообщения, разбиение на страницы и 404? WordPress – вручную связывает сообщение с страницами? новый боковую панель страницы по умолчанию WP_Query не возвращает результатов Как добавить разбивку на страницы для одного сообщения register_theme_directory () видит каталог настраиваемых тем, но пустой интерфейс OpenID для WordPress 3.x?

Запрос даты для настраиваемого мета поля

Я хотел бы использовать что-то похожее на следующий date_query, но я хотел бы использовать некоторые настраиваемые мета-поля вместо существующих столбцов post. Например, вместо post_date_gmt я хотел бы запросить date метаданных, которую я создал.

Другими словами, я хотел бы иметь возможность фильтровать мои custom_post_types используя некоторые custom_post_types например custom_post_types или end_date в их представлении в интерфейсе администрирования. Я уже перехватил основной WP_Query но я не уверен, как я могу фильтровать мета-поле вместо столбца post.

Могу ли я это сделать или лучше создать мета-запрос?

 // Any posts made over a year ago // but modified in the past month $some_posts = new WP_Query( array( 'date_query' => array( array( 'column' => 'post_date_gmt', 'before' => '1 year ago', ), array( 'column' => 'post_modified_gmt', 'after' => '1 month ago', ) ), 'posts_per_page' => -1, ) ); 

Вам нужно использовать meta_query для запроса настраиваемых полей. Если вы собираетесь хранить дату и время в пользовательских полях для целей заказа или сравнения, вам необходимо сохранить его в формате yyyy-mm-dd h:m:s или как временная метка unix .

Если у вас есть два настраиваемых поля, start и end и вам нужно получать сообщения между датой начала и окончания cetain, вы можете попробовать следующее

 $args = [ 'meta_query' => [ [ 'key' => 'start', 'value' => '2014-05-14' 'compare' => '>=', 'type' => 'DATE' ], [ 'key' => 'end', 'value' => '2015-05-07', 'compare' => '<=', 'type' => 'DATE' ], ], ]; $q = new WP_Query( $args ); 

FEW ПРИМЕЧАНИЯ:

  • Для этого требуется PHP 5.4+, поскольку он использует новый синтаксис коротких массивов

  • Вышеописанное полностью непроверено и может быть ошибочным. Я отправляю с мобильного устройства 🙂

  • Прочтите ссылки, которые я поставил выше

РЕДАКТИРОВАТЬ

По какой-то забавной причине неизвестно, я пропустил последнюю часть вашего комментария.

Кроме того, могу ли я иметь date_query внутри мета-запроса

Ответ – нет, но вы можете иметь дату и мета-запрос в одном и том же запросе, например

 $args = [ 'date_query' => [[ /* Your date related stuff */]], 'meta_query' => [[ /* Your custom field related stuff */ ]], ]; $q = new WP_Query( $args );