【问题标题】:Woocommerce [products] shortcode - How to order by given product ids atribute?Woocommerce [产品] 简码 - 如何按给定的产品 ID 属性订购?
【发布时间】: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


【解决方案1】:

只需将您的 do_shortcode 代码替换为以下代码 -

$content = do_shortcode( '[products ids="'.$product_ids.'" columns="3" orderby="post__in"]' );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-23
    • 1970-01-01
    • 2014-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多