我用简码列出了这样的产品类别
[product_category category="products" orderby="title" order="asc"]
并且想知道我如何才能让特色产品排在列表的首位?这和orderby参数有关系,但我不知道。
更多信息在WooCommerce官方docs。
14ifxucb1#
产品有一个自定义字段_featured,对于特色产品设置为**yes,对于非特色产品设置为no**。因此,您可以使用woocommerce_shortcode_products_query筛选器覆盖WooCOmmerce短代码。
_featured
yes
no
woocommerce_shortcode_products_query
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; }
列出产品从有特色到无特色(即从yes到no)
[product_category category="products" orderby="_featured" order="DESC"]
请注意:* 上面的代码似乎是工作,但如果你打印$args['orderby']它是不显示_featured键,所以我硬编码,它在$args。这不是一个标准的方式 *。希望这对你有帮助!
$args['orderby']
$args
1条答案
按热度按时间14ifxucb1#
产品有一个自定义字段
_featured
,对于特色产品设置为**yes
,对于非特色产品设置为no
**。因此,您可以使用woocommerce_shortcode_products_query
筛选器覆盖WooCOmmerce短代码。用途
列出产品从有特色到无特色(即从
yes
到no
)请注意:* 上面的代码似乎是工作,但如果你打印
$args['orderby']
它是不显示_featured
键,所以我硬编码,它在$args
。这不是一个标准的方式 *。希望这对你有帮助!