首页 > 解决方案 > 按当前类别显示 Woocommerce 畅销书

问题描述

我想制作一个短代码,可以放在类别页面上,例如侧边栏。它应该显示该类别的最畅销产品。

我找到的唯一解决方案是,如果我使用 slug 或 id 指定类别,如下所示:

[best_sales_products category=”<strong>KITCHEN-ACCESSORIES” columns="1" per_page="5"]

我怎样才能将简码转换成这样的东西?

[best_sales_products category=”<strong>CURRENT-CATEGORY” columns="1" per_page="5"]

标签: phpwordpresswoocommerceshortcode

解决方案


$term在您的活动主题的 functions.php 中添加以下代码片段以从当前或类别页面获取最畅销的产品-

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"]即可获取数据。


推荐阅读