1
이것은 내 검색 양식입니다. 내가 woocommerce를 사용합니다. 키워드 및 카테고리별로 제품을 검색해야합니다.Woocommerce - 제품 카테고리 키워드로 검색
<form role="search" method="get" action="<?php echo get_permalink(woocommerce_get_page_id('shop')); ?>">
<div class="search-bar-select hidden-sm hidden-xs">
<span></span>
<i></i>
<select name="category">
<option value="" class="search-bar-select-text"><?php _e('[:ru]Все категории[:ro]Toate categoriile') ?></option>
<?php foreach(woo_category_list(FALSE) as $category) { ?>
<option value="<?php echo $category->slug; ?>"><?php echo $category->cat_name; ?></option>
<?php } ?>
</select>
</div>
<div class="search-bar-input">
<input type="text" name="s" value="<?php echo get_search_query(); ?>" placeholder="<?php _e('[:ru]Поиск по сайту ...[:ro]Căutare pe site') ?>" />
</div>
<input type="hidden" name="post_type" value="product" />
<div class="search-bar-btn">
<button type="submit"><i class="fa fa-search"></i></button>
</div>
</form>
이 내 필터 코드
function advanced_search_query($query)
{
if($query->is_search()) {
// category terms search.
if (isset($_GET['category']) && !empty($_GET['category'])) {
$query->set('tax_query', array(array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array($_GET['category']))
));
}
return $query;
}
}
add_action('pre_get_posts', 'advanced_search_query', 1000);
하지만 워드 프레스는 키워드로 모든 범주에서 모든 제품을 보여줍니다. 무엇이 잘못 되었습니까?
필터 함수 안에'var_dump ($ _ GET) '를 넣으면 출력은 어떻게됩니까? –
또한 메모로 -'return $ query' 할 필요가 없습니다. –
마지막 팁 - '$ query-> set'대신에 - 다음과 같이 권장되는 구조를 사용하십시오 : http://wordpress.stackexchange.com/a/98143 –