在WooCommerce产品循环中,我们可以通过在URL中添加?pa_{attribute}={value}
来改变循环。
我正在尝试创建一个自定义产品过滤器,我需要知道当前哪些过滤器处于活动状态,因此我可以创建一个函数来更改URL而不会出现错误。
是否可以将活动的WooCommerce过滤器输出到数组中?
答案 0 :(得分:0)
您可以使用pre_get_posts
过滤器挂钩根据过滤器更改列表。
将以下代码粘贴到当前活动主题 functions.php 文件中:
function filter_pre_get_posts( $wp_query ) {
if(is_shop()){
$filter_term = $_GET['pa_color'];
if (isset($filter_term ) && !empty($filter_term )) {
$wp_query->set('tax_query', array(
array(
'taxonomy' => 'pa_color',
'field' => 'slug',
'terms' => $filter_term ,
'include_children' => true,
'operator' => 'IN'
)
));
}
}
add_action('pre_get_posts', 'filter_pre_get_posts' );
希望对您有帮助。