2016-02-01 4 views
3

У меня есть следующая проблема. Я пытаюсь создать сайт недвижимости с wordpress. Я создал пользовательский тип сообщения, и я включил следующие поля с расширенными настраиваемыми полями: Тип листинга (выберите: Продается, Сдается), Тип недвижимости (выберите: Квартира, Дом), Цена (Номер), Город (тип поля: выберите)WordPress: расширенный поиск настраиваемых типов сообщений и настраиваемых полей

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

<?php 
    $args = array(
      'post_type' => 'properties', 
      'posts_per_page' => 10, 
      'posts_per_page' => -1, 
      'meta_query' => array(
        array(
         'key'  => 'property_type', 
         'value' => 'Apartment', 
        ), 
       ), 
     ); 
    $loop = new WP_Query($args); 
    while ($loop->have_posts()) : $loop->the_post(); 
    ?> 
    <?php 
    $property_type = get_field('property_type'); 
      $property_price = get_field('price'); 
      $property_location = get_field('location'); 
      $property_description = get_field('description'); 
    ?> 
    <div class="propert_list"> 
     <h1><?php the_title(); ?></h1> 
     <div class="property_type"> 
      Location - <strong><?php echo $property_type; ?></strong> 
     </div> 
     <div class="property_price"> 
      Price - <strong><?php echo $property_price; ?></strong> 
     </div> 
     <div class="property_location"> 
      Location - <strong><?php echo $property_location['address']; ?></strong> 
     </div> 
     <div class="property_description"> 
      Property Description - <strong><?php echo $property_description; ?></strong> 
     </div> 
    </div> 
    <br /><hr /> 
    <?php endwhile; ?> 

Где и как я могу создать свою форму поиска, чтобы отфильтровать свойства, «property_type» и «место».

ответ

0

Если вы хотите сделать поиск под тем же шаблоном страницы, вы можете достичь этого, используя таблицу данных HTML с возможностью поиска и JavaScript. Просто инкапсулируйте свои значения в таблицу. Вы можете передать эти ссылки на примеры кода:

http://www.vijayjoshi.org/2011/01/03/searching-text-in-a-html-table-using-jquery/

и

https://www.datatables.net/examples/data_sources/js_array.html

Я также заметил, что вы забыли сбросить Wp запрос. Всегда безопасно заканчивать wp_reset_query();

Надеюсь вам это helps.`

1

Одно из решений состоит в установке Search & Filter. Позволяет фильтровать поиск по заданным типам сообщений, мета полям и т. Д. И является очень мощным. Недостатком является то, что вам, возможно, придется заплатить за версию Pro.

Другим решением может быть добавление скрытых полей ввода в форму поиска PHP. Например:

<input type="hidden" name="post_type[]" value="properties" /> 

0 Искать только по свойствам и сделать то же самое для фильтрации ваших метазначений. Это легко реализовать, но менее гибко, и я предпочитаю разделить вид и логики в любом случае.

Третьим решением будет использование фильтра pre_get_posts. Тогда вы можете написать, например.

if ($post_types) $query->set('post_type', 'properties'); 

... и т.д., внутри этот фильтр. Есть много примеров, которые показывают вам, как это сделать. Просто найдите Google для имени фильтра :-)

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