Как фильтровать пользовательские сообщения по тегам и настраиваемым полям?

Я планирую сайт для клиента, который хочет, чтобы пользователи могли фильтровать предстоящие события по следующим критериям:

Тип – Комедия, Театр, Музыка и т. Д.

Дата Ежедневно или Выходные

Продолжительность дня или полдня

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

У меня есть вопрос, как использовать query_posts () для:

  1. Перечислите события так, чтобы скорейшее (т. Е. Следующее событие произошло) появляется первым и последующим событиям последним?
  2. Фильтровать по нескольким мета-значениям (Тип, Дата и Продолжительность)?

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

Раньше я создал список событий для клиента, но без фильтрующих возможностей. Я использовал этот код query_posts (), чтобы получать пользовательские сообщения и заказывать вещи:

// List the events by custom field 'Date': $todaysDate = date('Y/m/d'); // set todays date to check against custom field // query posts query_posts('post_type=Event&meta_key=Date&meta_compare=>=&meta_value=' . $todaysDate . '&orderby=meta_value&order=ASC'); 

Однако я не вижу, как я могу изменить этот код для фильтрации несколькими настраиваемыми полями … любые идеи?

благодаря

Solutions Collecting From Web of "Как фильтровать пользовательские сообщения по тегам и настраиваемым полям?"

вы можете использовать пользовательские таксономии и сделать вас query_post намного проще! под этим я подразумеваю создание пользовательской таксономии для типа, продолжительности вроде:

 add_action('init','register_event_tax'); function register_event_tax(){ register_taxonomy('even_type',array('events'), array( 'hierarchical' => false, 'labels' => 'type', 'show_ui' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'type' ), )); register_taxonomy('even_duration',array('events'), array( 'hierarchical' => false, 'labels' => 'type', 'show_ui' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'duration' ), )); } 

то вы можете запросить такие сообщения:

 query_posts('post_type=Event&duration=DAILY&type=COMEDY&meta_key=Date&meta_compare=>=&meta_value=' . $todaysDate . '&orderby=meta_value&order=ASC'); 

и вы можете изменить длительность и тип, чтобы фильтровать то, что когда-либо типа или продолжительности вы хотите.

надеюсь это поможет.