Woocommerce产品短代码按ID顺序排序

时间:2019-08-30 16:10:42

标签: php wordpress woocommerce shortcode

我想通过在[products ids =“”]短代码中输入的ID来订购产品展示。我需要它按照您输入的顺序进行排序。所以... [产品ids =“ 1,2,3”] [产品ids =“ 3,1,2”] [产品ids =“ 2,3,1”] ...所有列表都不同。

我发现这段代码我认为很接近,但效果不佳。我对这种方法不是很熟悉,所以不确定什么地方不对。

add_filter( 'woocommerce_shortcode_products_query', 'woocommerce_shortcode_products_orderby' );
function woocommerce_shortcode_products_orderby( $args ) {
    $standard_array = array('menu_order','title','date','rand','id');
if( isset( $args['orderby'] ) && !in_array( $args['orderby'], $standard_array ) ) {
$args['orderby']  = 'post__in'; 
}

return $args;

我在post__in上阅读了内容,但不确定如何获取输入的ID列表。还有另一种/更好的方法来获取该ID列表并将其用于订单吗?

关于如何使该功能正常工作的任何想法?

1 个答案:

答案 0 :(得分:1)

只需在您的短代码中添加订单,例如-

[products ids="1,2,3" orderby="post__in"]
[products ids="3,1,2" orderby="post__in"]
[products ids="2,3,1" orderby="post__in"]