首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在没有额外插件的情况下按功能或标签对WooCommerce产品进行排序?

如何在没有额外插件的情况下按功能或标签对WooCommerce产品进行排序?
EN

Stack Overflow用户
提问于 2017-03-09 09:33:18
回答 1查看 8.1K关注 0票数 0

我正在使用短代码来列出这样的产品类别

代码语言:javascript
复制
[product_category category="products" orderby="title" order="asc"]

我想知道怎样才能让特色产品成为榜单的首位呢?这与序比参数有关,但我不知道。

请不要提议第三方插件。

更多信息在WooCommerce官方文档

EN

回答 1

Stack Overflow用户

发布于 2017-03-09 10:12:13

产品有一个自定义字段为_featured,对于功能产品设置为no,对于非功能产品设置为no。因此,您可以使用woocommerce_shortcode_products_query筛选器覆盖WooCOmmerce短代码。

代码语言:javascript
复制
add_filter('woocommerce_shortcode_products_query', 'wh_woocommerce_shortcode_products_orderby');

function wh_woocommerce_shortcode_products_orderby($args)
{

    $standard_array = ['menu_order', 'title', 'date', 'rand', 'id'];
//  print_r($args['orderby']);
    if (isset($args['orderby']) && !in_array($args['orderby'], $standard_array))
    {
        $args['meta_key'] = '_featured';
        $args['orderby'] = 'meta_value_num';
    }
//  print_r($args);
    return $args;
}

代码在您的活动子主题(或主题)的function.php文件中。也可以在任何插件php文件中。

使用

列出非功能产品表单(即从yesno)

代码语言:javascript
复制
[product_category category="products" orderby="_featured" order="DESC"]

请注意:上面的代码似乎是有效的,但是如果您打印$args['orderby'],它没有显示_featured键,所以我硬编码,它在$args__中。这不是一种标准的方式。

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42691587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档