Intereting Posts
Различные Webhost и использование сервера Google Mail: есть ли лучший способ, чем SMTP? Почему есть тег ссылки с rel "profile", указывающий на gmpg.org? Могу ли я использовать одно и то же имя папки как многопользовательский блог? Как авторизовать пользователей после создания нового сайта (multisite)? Общее количество сообщений в запросе (категория / тег / автор / результаты поиска / главная страница …) Дата Язык не изменяется Добавить rel = canonical только на одну страницу Распространение внешних компонентов с плагинами Почему WordPress нужен мой приватный ключ ssh для обновления? Внедрение SOAP-клиента в плагин WordPress? Индивидуальная разбивка по страницам – всегда возвращает первую страницу wp_query (и post_id) пуст в admin_init Выбор цвета для сообщений и страниц Любимые сайты с укороченными гиперссылками Редактируемый контент на странице пользовательского архива

Как получить события, используя несколько настраиваемых мета-полей?

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

Есть ли у кого-нибудь какие-либо предложения относительно того, как это сделать? (из того, что я читал там, похоже, не существует способа использовать несколько значений «meta_key» и «meta_compare», но должен быть каким-то образом способ)

Вот пример того, что я использую в своих аргументах, но мне также нужно сделать это и для даты начала:

'meta_key' => 'end_date_value', 'meta_compare' => '>', 'meta_value' => $todaysDate, 

Solutions Collecting From Web of "Как получить события, используя несколько настраиваемых мета-полей?"

Вы можете использовать свой текущий код для создания запроса, а затем в цикле запустить проверку перед отображением событий, например,

 <?php query_posts('meta_key' => 'end_date_value', 'meta_compare' => '>', 'meta_value' => $todaysDate); while ( have_posts() ) : the_post(); $post_custom = get_post_custom($post_id); if ($startDate < $post_custom['start_date_value']){ //your loop here } } 

?>

имейте в виду, что это не правильно закодированный способ сделать это, я бы, вероятно, создал лучший SQL-запрос или использовал hooks posts_where.

но его начало

Не совсем эффективно, но вы можете сделать два запроса.

Тот, который извлекает события, у которых дата больше, чем startDate, а другая имеет конечное время ниже конечных данных.

Затем вы можете сделать array_intersect () два массива.