【发布时间】:2019-07-30 13:53:12
【问题描述】:
我想获取产品列表 (html),使用 Woocommerce 默认的 [products] 短代码,如下所示:
$product_ids = '1,2,3,4,5';
$content = do_shortcode( '[products ids="'.$product_ids.'" columns="3"]' );
此短代码返回正确的 html 产品列表。问题在于秩序。它返回按日期订购的产品(默认)。但我需要和通过的一样的顺序。
如果这是使用默认的 Wordpress WP_Query 完成的,那就是这样:
'post__in' => $product_ids ,
'orderby' => 'post__in'
但是使用 WC 短代码,我找不到重现此的方法。我正在尝试在 WC Shortcode 类中查找操作或过滤器,但没有成功。
任何人都知道如何编辑 WC Shortcodes 查询以添加参数 'orderby' => 'post__in'?
【问题讨论】:
-
你试过
do_shortcode( '[products orderby="id" ids="'.$product_ids.'" columns="3"]' );吗? -
你好@JasvinderSingh!是的,我试过了。这个参数的顺序是在数据库中发布 ID,而不是
ids参数中的顺序。不幸的是,不起作用。 -
只需在短代码属性中传递
orderby="post__in" -
@itzmekhokan 难以置信!有用!它没有记录在 WooCommerce 简码页面中。您可以发布答案让我接受吗?
-
是的,当然。
标签: wordpress woocommerce