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

use*_*699 2 php wordpress shortcode woocommerce

我想通过 [products ids=""] 短代码中输入的 id 来订购产品显示。我需要按照您输入的顺序进行订购。所以... [products ids="1,2,3"] [products ids="3,1,2"] [products 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;
Run Code Online (Sandbox Code Playgroud)

我阅读了 post__in 但不确定它如何获取我输入的 ID 列表。是否有另一种/更好的方法来获取该 id 列表并将其用于订单?

关于如何让这个东西发挥作用有什么想法吗?

itz*_*kan 9

只需在您的简码中添加 order by 即可,例如 -

[products ids="1,2,3" orderby="post__in"]
[products ids="3,1,2" orderby="post__in"]
[products ids="2,3,1" orderby="post__in"]
Run Code Online (Sandbox Code Playgroud)