Order posts by price

时间:2012-12-07 作者:Michael

我在一个页面上有一个产品列表,并试图通过一个名为“价格”的自定义字段进行订购。不幸的是,3950000美元比349000美元还要多。我使用了一些代码,但都不起作用。有人有什么建议吗?谢谢

这是我尝试的第一个代码。

$query = new WP_Query( array ( \'post_type\' => \'product\', \'orderby\' => \'meta_value\', \'meta_key\' => \'price\', \'order\' => \'ASC\' ) );
这是我尝试过的另一个代码。

$query = new WP_Query( array ( \'post_type\' => \'product\', \'orderby\' => \'meta_value_num+0\', \'meta_key\' => \'price\', \'order\' => \'ASC\' ) );

2 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

您正在将“价格”(显然)存储为人类可读的格式化货币。这使它成为一根弦。这意味着它将按字母顺序排序,或多或少,而不是按需要的数字排序。如果可以不使用标点符号存储这些值,并使用meta_value_num-- 您在上面的第二个查询(但我不确定您是否需要“+0”)——我想您会得到您想要的。

SO网友:Bryan Kevin Tabuan

以下链接提供了很好的参考:

https://therichpost.com/wordpress-query-to-get-woocommerce-products-order-by-sales-pricing-and-rating/

\'orderby\' => \'meta_value_num\',
\'order\' => \'asc\',
\'meta_key\' => \'_price\'

结束

相关推荐

Custom order for Mysql array

我有一页帖子,每篇帖子都有一个自定义字段“expired”,其中包含一个YYYY-MM-DD格式的日期,用于订购帖子。该日期用于一个脚本,该脚本告诉访问者优惠是否已过期或有效期是否超过X天。我的数组如下:$postid = get_the_ID(); $meta1 = get_post_meta($postid, \'shop\', true); $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;