Украина, Днепр
(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-2025 All rights reserved.
created by WPS.