2012-06-12 2 views
0

enter image description hereДобавить поля со списком для WordPress форме поиска


Я хотел бы заменить текстовое поле по умолчанию в форме поиска WordPress с четырьмя комбо-боксов, как показано на рисунке выше. Мне нужно разрешить моим пользователям поиск сообщений на основе значений, выбранных в поле со списком.

Каждый комбинированный блок вытягивает значения настраиваемого поля. Например, тип свойства должен проверять значения в настраиваемом поле property_type.

Моя головная боль заключается в том, как сделать форму похожей на изображение выше, а также как правильно запросить сообщения, используя комбинации этих критериев. Например. Поиск типа недвижимости: Таунхаус должен предоставить мне все сообщения с «Таунхаусом» в пользовательском поле property_type.

Я бы очень признателен за любую помощь, которую я могу получить от этого.

Спасибо.

ответ

1

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

Этот запрос также зависит от того, как упорядочиваются ваши поисковые запросы.

Например, "Тип недвижимости" является категорией? тег? систематика? Пользовательское поле?

Это немного сложнее, чем простой ответ.

Например, если вы хотите, чтобы ваш термин поиска включить «категории» (при условии, что «свойство типа» есть категории вы можете сделать это:

<form role="search" method="get" id="searchform" action="<?php bloginfo('siteurl'); ?>"> 
    <div> 
    <label class="screen-reader-text" for="s">Search for:</label> 
    <input type="text" value="" name="s" id="s" /> 
    in <?php wp_dropdown_categories('show_option_all=All Categories'); ?> 
    <input type="submit" id="searchsubmit" value="Search" /> 
    </div> 
</form> 

или как функция:

function wp_combo_search_form($form) { 
$form = '<form method="get" id="searchform" action="' . get_option('home') . '/" > 
<div><label class="hidden" for="s">' . __('Search for:') . '</label> 
<input type="text" value="' . attribute_escape(apply_filters('the_search_query', get_search_query())) . '" name="s" id="s" /> 
<input type="submit" id="searchsubmit" value="'.attribute_escape(__('Search')).'" /> 
<br /> 
'.wp_dropdown_categories('show_option_all=All Categories&hide_empty=0&echo=0&selected='.intval($_GET['cat']).'').' 
</div> 
</form>'; 
return $form; 
} 

//uncomment following line for automatic filtering your theme 
//add_filter('get_search_form', 'wp_combo_search_form'); 

Использование:

<?php echo wp_combo_search_form(''); ?> 

Но если честно - судя по типу вопроса и «стиль» - я бы с Вы можете найти плагин для этого. SEARCH HERE

EDIT Я Есть еще много способов и подходов, чтобы сделать это (JQuery, Json, прямой запрос ..), но:

теперь, когда вы сказали, что вам нужно пользовательские поля -

Начиная с wp3.1 вы можете добавить meta_query в query_posts.

<?php 
$args = array(
    'post_type' => 'your_post_type', //typically "post" 
    'meta_query' => 
     array(
      'key' => 'your_key', 
      'value' => 'your_value', 
      'compare' => 'NOT LIKE' //just an example 
     ), 
     array(
      'key' => 'your_key_2"', 
      'value' => array(20, 100), //value can be array 
      'type' => 'numeric', //just an example 
      'compare' => 'BETWEEN' //just an example 
     ) 
) 
query_posts($args); 
?> 

первый захват ваши переменные в search.php как $_GET['field name'];

$p_type = $_GET['property_type']; 
$p_city = $_GET['property_city']; 
$n_bedrooms = $_GET['no_bedrooms']; 
$n_bathrooms = $_GET['no_batrhooms']; 

затем передать его запрос массиву

$args = array(
    'meta_query' => array(
     'relation' => 'AND', 
array(
      'key' => $p_type, 
'value' => $whatever, 

     ), 
     array(
      'key' => $p_city, 
'value' => $whatever, 

     ) 
    ) // etc.etc... 
); 

Теперь вам нужно только заполнить выпадающие с нужными значениями.

Вы можете увидеть пример (поля поиска - не выпадающие - но это то же самое) здесь:

http://dev.matthewaprice.com/

и читать, как подмигнули сделано здесь:

http://matthewaprice.com/search-multiple-custom-fields-in-wordpress/

Читайте также здесь: http://www.wp1stop.com/wordpress-101-guide-search-multiple-custom-fields-in-wordpress-custom-field-search-custom-query-part-1/

+0

Привет @Obmerk, спасибо за ваш ответ, и жаль, что я не был более конкретным. Я хочу искать сообщения на основе значений в 4 настраиваемых полях. Каждое поле со списком предназначено для настраиваемого поля. Например, тип свойства должен проверять значения в настраиваемом поле property_type. Моя головная боль заключается в том, как сделать форму похожей на изображение выше, а также как правильно запросить сообщения, используя комбинации этих критериев. Например. Поиск типа недвижимости: Таунхаус должен предоставить мне все сообщения с «Таунхаусом» в пользовательском поле property_type. – 3ph

+0

@ 3ph - см. Обновление –

+0

спасибо! Это должно соответствовать моим требованиям. Я попробую и дам вам отзывы. – 3ph

Смежные вопросы