我想创建一个短代码,可以将其放在类别页面上,例如在侧边栏上。 它应该显示类别中最畅销的产品。
我找到的唯一解决方案是,如果我用slug或id指定类别,如下所示:
[best_selling_products category =” 厨房配件” column =“ 1” per_page =“ 5”]
如何将短代码转换为类似的内容?
[best_selling_products category =” 当前类别”列=“ 1” per_page =“ 5”]
答案 0 :(得分:0)
将此添加到您的functions.php
function custom_best_selling_products( $attr = array() ){
$string = '[best_selling_products ';
$string .= ' category="' . get_query_var( 'term' ) . '" ';
if( $attr ){
foreach ( $attr as $key => $value ) {
$string .= ' ' . $key . '="' . $value . '" ';
}
}
$string .= ']';
return do_shortcode( $string );
}
add_shortcode( 'custom_best_selling_products', 'custom_best_selling_products' );
这将创建一个自定义的简码,您可以像这样使用它:[custom_best_selling_products columns="1" per_page="5"]
该简码将自动获取类别
答案 1 :(得分:0)
在活动主题的functions.php中添加以下代码段,以从当前的$term
或类别页面获得最畅销的产品-
function modify_woocommerce_shortcode_products_query( $query_args, $attributes, $type ) {
if( $type != 'best_selling_products' ) return $query_args;
$term = get_queried_object();
if( $term ) {
if( !isset($query_args['category'] ) ){
$query_args['category'] = $term->slug;
}
}
return $query_args;
}
add_filter( 'woocommerce_shortcode_products_query', 'modify_woocommerce_shortcode_products_query', 99, 3 );
添加只需使用woocommerce默认短代码[best_selling_products columns="1" per_page="5"]
即可获取数据。