Woocommerce 产品的 WP_Query 中的 Orderby 价格

2 wordpress woocommerce

我有这个代码,我需要按价格获取所有产品订单:

我正在尝试按价格对我的产品进行排序,但效果不佳。

这是我获取产品的代码,如果我不使用“orderby”,它就可以正常工作。

$args = array(
    'post_type'=> 'product',
    'meta_key' => 'price',
    'orderby' => 'meta_value_num',
    'order' => 'ASC'
);
$wooCommerceargs = new WP_Query( $args );
Run Code Online (Sandbox Code Playgroud)

但问题是没有任何产品展示!

Chr*_*yer 5

首先,不要使用WP_Query()get_posts()。来自 WooCommerce 文档:

wc_get_products 和 WC_Product_Query 提供了一种检索产品的标准方法,该方法可以安全使用并且不会因未来 WooCommerce 版本中的数据库更改而中断。构建自定义 WP_Queries 或数据库查询可能会在 WooCommerce 的未来版本中破坏您的代码,因为数据会移向自定义表以获得更好的性能。

请参阅WooCommerce 文档

其次,您不能直接在查询中按价格订购。获取您的产品,然后调用该wc_products_array_orderby()函数。

$args     = array(); // Optional arguments
$products = wc_get_products( $args );
$ordered  = wc_products_array_orderby( $products, 'price', 'ASC' );
Run Code Online (Sandbox Code Playgroud)