Фильтр по своих таксономиях

Иногда нужно фильтровать данные по своих таксономиях, например в интернет магазине на основе 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;
    }