我和following thread中回答的Quadie有同样的问题。
LoicTheAztec提供的代码效果很好......
add_filter( 'woocommerce_products_widget_query_args', function( $query_args ){
// Set HERE your product category slugs
$categories = array( 'music', 'posters' );
$query_args['tax_query'] = array( array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => $categories,
));
return $query_args;
}, 10, 1 );
...但我想知道是否有扩展此代码的选项,以便能够设置每个单独的小部件的类别。例如。我想要一个页面x上的类别1的产品小部件,而我想要第x页的其他地方的类别2的产品小部件。
我在考虑使用shortcode&将类别指定为此短代码的数组,但不确定如何实现它。
关于这个问题的任何想法?
这是我尝试使用的短代码:
[productsbycat cat1="broodjes"]
&安培;它会触发以下代码:
function productsbycat_func( $atts ) {
$categories = shortcode_atts( array(
'cat1' => 'something',
'cat2' => 'something else',
), $atts );
add_filter( 'woocommerce_products_widget_query_args', function ( $query_args ){
$query_args['tax_query'] = array( array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => $categories,
));
return $query_args;
}, 10, 1 );
}
add_shortcode( 'productsbycat', 'productsbycat_func' );
但是,它还没有产生任何东西。
答案 0 :(得分:1)
无法扩展我的代码"能够为每个单独的小部件设置类别"。
仅适用于您的短代码我认为您不需要为此进行任何代码自定义。
我看一下与WooCommerce Shortcodes相关的WooCommerce官方文档,您会在"Product category"部分看到这个简短的代码: [product_category]
,主要参数是的 category
强>
您可以通过以下方式添加一个产品类别 slugs :
[product_category category="clothing"] // One product category
对于许多产品类别 slugs (昏迷分开)这样:
[product_category category="posters,music"]
默认参数设置(您可以更改)是:
$args = array(
'per_page' => "12",
'columns' => "4",
'orderby' => 'title', // or by "menu_order"
'order' => "asc", // or "desc"
'category' => "" // Always only product category slugs
'operator' => "IN" // Possible values are "IN", "NOT IN", "AND".
);
但它不会像您在产品小部件中那样工作,因为它会显示已定义类别的产品网格循环
您应该构建自己的小部件。