WP_Query for Woocommerce产品中的订单价格

时间:2019-06-11 18:10:42

标签: wordpress woocommerce

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

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

这是我获取产品的代码,如果我不使用“ orderby”,效果很好。

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

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

2 个答案:

答案 0 :(得分:1)

首先,请勿使用WP_Query()get_posts()。从WooCommerce文档中:

  

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

请参见WooCommerce documentation

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

$args     = array(); // Optional arguments
$products = wc_get_products( $args );
$ordered  = wc_products_array_orderby( $products, 'price', 'ASC' );

答案 1 :(得分:0)

根据 @Christian Lescuyer 答案使用WC_Query。

第二,您不能直接在查询中按价格订购。拿你的 产品,然后调用

可以,WC_Query

$args  = [];
$query = new WC_Query( $args );

$query->get_catalog_ordering_args( 'price' );
$query->get_products()
$query->remove_ordering_args();