【问题标题】:Show most popular WooCommerce product tags in Product Tag Cloud Widget在产品标签云小部件中显示最受欢迎的 WooCommerce 产品标签
【发布时间】:2019-10-22 12:48:15
【问题描述】:

所以我的侧边栏/页脚上有默认的 WooCommerce 产品标签云小部件,我发现以下代码来限制它显示的数量,因为它占用了大量空间。然而,这段代码实际上并没有显示最流行的标签,我不知道它是用什么来订购它们的。

function set_widget_tag_cloud_args($args) {
  $my_args = array(
    'orderby'  => 'count',
    'order'    => 'DESC',
    'number'   => 15
  );
  $args = wp_parse_args( $args, $my_args );
return $args;
}
add_filter('widget_tag_cloud_args','set_widget_tag_cloud_args');

因此它正确地将其限制为 15 个标签,仅显示 product_tag 而不是常规标签,但 orderby 无法正常工作。例如,我最受欢迎的标签(按数量计算)是“钢琴”和“铃铛”,但它们根本没有出现在列表中。

编辑:我已更改为标准的 Wordpress 标签云,它有一个下拉菜单可以选择产品标签而不是帖子标签。但是行为很奇怪,在没有 'number' => 15 的情况下运行此过滤器会导致 orderby 计数并正常工作,但随后会显示 45 个标签,这太多了。一旦我将数字 arg 添加回代码中,它会将其限制为 15,但不会以正确的顺序显示它们。

黄色显示跨越所有限制的标签,蓝色显示增加限制时添加的标签,红色显示未出现在任何限制下的顶部标签,仅默认限制设置。

【问题讨论】:

    标签: php wordpress function woocommerce tag-cloud


    【解决方案1】:

    您使用错误的钩子进行自定义。您需要使用woocommerce_product_tag_cloud_widget_args 自定义 WooCommerce 产品标签云的参数。

    function set_widget_tag_cloud_args($args) {
        $my_args = array(
            'orderby'  => 'count',
            'order'    => 'DESC',
            'number'   => 15
            );
        $args = wp_parse_args( $args, $my_args );
        return $args;
    }
    add_filter('woocommerce_product_tag_cloud_widget_args','set_widget_tag_cloud_args');
    

    【讨论】:

    • 我使用 WooCommerce 产品标签云小部件将其作为我之前的代码,并且它的行为方式相同,因此我更改了我的问题以更新我正在使用来自 Wordpress 的常规产品标签云和产品标签分类下拉菜单。它的行为方式仍然相同,并且只显示与第一个代码相同的标签。它看起来像是对用户前端起作用,但在管理员中我正在查看计数,并且无论出于何种原因,它都没有按最高计数排序。如果我去掉“数字”参数,它可以工作,但列表太长了。
    • 我用一张图片编辑了我的问题,以便更好地解释正在发生的事情。
    • 知道为什么会这样吗?我想不通
    猜你喜欢
    • 2018-01-27
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 2021-07-02
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多