Intereting Posts
категории на странице вложений Загружать содержимое страницы с помощью AJAX с помощью Fancybox? Каталог плагинов говорит, что мой плагин не доступен на испанском, но это Разница и примеры esc_attr __ () и esc_attr_e () Локализовать строки для перевода Измените и сделайте обновление класса-wc-widget-featured-products.php Как удалить таблицу стилей по умолчанию? query_posts добавляет дополнительный код на главную страницу Быстрая настройка экрана редактирования Как отключить или исключить кеширование для wp-cron.php * в управляемом wordpress? Кажется, я не могу добавить загруженное изображение в сообщение и установить его как миниатюру Удалить Yoast jQuery с передней стороны Я пытаюсь использовать «wp_set_object_terms» для обновления условий на основе сохраненной записи мета Получить параметры из базы данных с помощью php-класса скользящий / затухающий плагин заголовка или предложение подхода

Поиск страниц пользовательского типа и пользовательских полей в 2 раскрывающихся списках?

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

Пока я не смог получить результаты для фильтрации через настраиваемое поле. Вот мой код формы:

<form method="get" action="<?php echo get_permalink($properties_search_id); ?>"> <input type="hidden" name="post_type" value="floor_plan" /> <ul class="wpp_search_elements"> <li class="wpp_search_group wpp_group_not_a_group"> <ul class="wpp_search_group wpp_group_not_a_group"> <li> <label class="wpp_search_label wpp_search_label_bedrooms" for="wpp_search_element_7165">Bedrooms<span class="wpp_search_post_label_colon">:</span></label> <div class="wpp_search_attribute_wrap"> <select name="bedrooms" class="bedrooms"> <?php $metakey = 'number_of_bedrooms'; $bedrooms = $wpdb->get_col($wpdb->prepare("SELECT DISTINCT meta_value FROM $wpdb->postmeta WHERE meta_key = %s ORDER BY meta_value ASC", $metakey) ); if ($bedrooms) { foreach ($bedrooms as $bedroom) { echo "<option value=\"" . $bedroom . "\">" . $bedroom . "</option>"; } } ?> </select> </div> <div class="clear"></div> </li> <li> <label class="wpp_search_label wpp_search_label_property_type" for="wpp_search_element_7437">Property Type<span class="wpp_search_post_label_colon">:</span></label> <div class="wpp_search_attribute_wrap"> <?php $args = array( 'child_of' => 0, 'sort_order' => 'ASC', 'sort_column' => 'post_title', 'hierarchical' => 2, 'depth' => 1, 'post_type' => 'floor_plan' ); wp_dropdown_pages( $args ); ?> </div> <div class="clear"></div> </li> </ul> <div class="clear"></div> </li> <li class="wpp_search_form_element submit"> <input type="submit" value="Search" class="wpp_search_button submit"> </li> </ul> </form> 

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

Solutions Collecting From Web of "Поиск страниц пользовательского типа и пользовательских полей в 2 раскрывающихся списках?"

Похоже, этот вопрос несколько месяцев, но он хороший, поэтому я выкапываю его из могилы.

То, как я решал это, было бы перехват любых поисков с pre_get_posts фильтра pre_get_posts и добавление мета-запроса на основе предоставленной информации. Вот основной пример решения, которое может стать плагином или войти в файл functions.php вашей темы:

 <?php /** * Add a parameter for a custom field search */ add_filter('query_vars', 'wpse_35639_search_queryvars' ); function wpse_35639_search_queryvars( $qvars ) { $qvars[] = 'bedrooms'; return $qvars; } /** * Intercept the posts query to add in our meta query if necessary */ add_action('pre_get_posts','wpse_35639_intercept_search'); function wpse_35639_intercept_search() { global $wp_query; if ( ! is_admin() && isset($wp_query->query_vars['bedrooms']) && is_numeric($wp_query->query_vars['bedrooms']) ) { # Limit the search to the floor_plan custom post type $wp_query->set('post_type', 'floor_plan'); # This may seem unconventional, but we're setting that this is a search # even though WP doesn't recognize it as one. This is to leverage the search template $wp_query->is_search = true; # Set the meta query comparison $wp_query->set('meta_query', array( array( 'key' => 'number_of_bedrooms', 'value' => $wp_query->query_vars['bedrooms'], 'compare' => '=', 'type' => 'NUMERIC' ) ); } } ?> 

Обратите внимание, что это просто решает пользовательскую область поиска. Поиск по странице намного проще (и я думаю, вы решили это уже).