2014-10-15 5 views
2

Любая идея, почему этот запрос показывает продукты внутри другой родительской категории и ее дети? http://botanicaevents.com/rentals/?s=white&product_cat=floralwoocommerce категория продуктов поиск фильтр показывать другие категории товары

Он должен показать только продукт «Белый цветочный тест продукта»

Белую этот запрос работает правильно: http://botanicaevents.com/rentals/?s=white&product_cat=rentals Обратите внимание, как рабочая строка выше не показывает «Белый цветочный тест продукта»

Здесь это форма поиска:

<form role="search" method="get" id="searchform" action="http://botanicaevents.com/rentals/"> 
    <div> 
     <label class="screen-reader-text" for="s">Search for:</label> 
     <input type="text" value="" name="s" id="s" placeholder="Search for products" /> 
     <input type="hidden" name="product_cat" value="floral" /> 
     <input type="submit" id="searchsubmit" value="Search" /> 
    </div> 
</form> 

Единственное изменение в форме name="product_cat" value="rentals"

ответ

0

По умолчанию поведение WordPress будет искать поисковый запрос в категории WooCommerce и его дочерних категориях. Чтобы изменить это, вам, возможно, придется использовать действие pre_get_posts, чтобы изменить сам запрос, чтобы не включать дочерние категории.

Например:

add_action('pre_get_posts', 'woo_alter_category_search'); 
function woo_alter_category_search($query) { 
    if (is_admin() || !is_search()) 
     return false; 

    if ($product_cat = $query->get('product_cat')) { 
     $query->set('product_cat', ''); 
     $query->set('tax_query', array(
      array(
       'taxonomy' => 'product_cat', 
       'field' => 'slug', 
       'terms' => $product_cat, 
       'include_children' => false, 
      ) 
     )); 
    } 
} 

Имейте в виду, что этот код не тестировался - это только пример.

+0

Хмм, он по-прежнему показывает дочерние элементы другой родительской категории, я добавил код действия в свой файл функций: http://botanicaevents.com/rentals/?s=white&product_cat=floral – blkedy

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