Украина, Днепр
(095) 478-70-11
Иногда нужно фильтровать данные по своих таксономиях, например в интернет магазине на основе woocomerce нужно фильтровать по атрибутам.
Для начала прописываем в function.php основной обработчик
add_action('pre_get_posts', 'search_by_my_tax');
function search_by_my_tax() {
global $wp_query;
$pa_type_of_coating = isset($_GET['pa_type_of_coating']) ? (int)$_GET['pa_type_of_coating'] : 0;
if($pa_type_of_coating>0){
$wp_query->query_vars['tax_query'][] = array(
"taxonomy" => "pa_type_of_coating",
"field" => "id",
"terms" => $pa_type_of_coating
);
}
}Теперь на страницу категории товара выводим сам фильтр
$taxonomySlug = ['pa_type_of_coating'];
foreach($taxonomySlug as $slug){
$taxonomyData = get_taxonomy($slug);
$key = isset($_GET[$slug]) ? $_GET[$slug] : 0;
$listByTaxo = wp_dropdown_categories(
[
'taxonomy'=>$slug,
'echo'=>0,
'hide_if_empty'=>true,
'hide_empty'=>false,
'show_option_none'=>$taxonomyData->labels->singular_name,
'name'=>$taxonomyData->name,
'class'=> 's2 orderby',
'selected'=>$key,
'option_none_value'=>0
]
);
echo $listByTaxo;
}Copyright © 2012-2026 All rights reserved.
created by WPS.