Wordpress 如何使用货币符号和数字填充orderby meta_键acf字段?

Wordpress 如何使用货币符号和数字填充orderby meta_键acf字段?,wordpress,sorting,advanced-custom-fields,meta-query,Wordpress,Sorting,Advanced Custom Fields,Meta Query,我使用WP_查询查询列表(自定义帖子类型),并按ACF元字段排序结果。该字段包含带有货币符号和逗号分隔符(如$100000)的价格值 这是我传递给WP\u查询的$args $args = array( 'post_type' => 'listing', 'post_status' => 'publish', 'posts_per_page' => -1, 'meta_key' => '_listing_price', 'orderby' => 'meta_value

我使用WP_查询查询列表(自定义帖子类型),并按ACF元字段排序结果。该字段包含带有货币符号和逗号分隔符(如$100000)的价格值

这是我传递给WP\u查询的$args

$args = array(
'post_type' => 'listing',
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_key' => '_listing_price',
'orderby' => 'meta_value',
'order' => 'ASC'
);
$listing_query = new WP_Query($args);
此结果:

$0 $0 $100,000 $150,000 $22,000 $320,300 $33,000 $359,000.
$0 $0 $22,000 $33,000 $100,000 $150,000 $320,300 $359,000.
但我需要这样的结果:

$0 $0 $100,000 $150,000 $22,000 $320,300 $33,000 $359,000.
$0 $0 $22,000 $33,000 $100,000 $150,000 $320,300 $359,000.

理想情况下,您只需存储整数(或浮点)值,例如:
0
0
22000
323000
,等等。这将允许您添加任何您以后想要的货币符号和格式,并使排序和操作更容易

因此,首先,你应该评估你是否能够通过并做到这一点(这可能是值得的)

除此之外,您可以尝试使用
meta\u value\u num

然而,我不确定它是否会起作用。源代码显示它向元查询别名添加了
+0
,但没有以其他方式强制转换它-因此我不确定它如何处理美元符号、逗号和其他字符


第三种方法是像现在一样获取结果,然后循环遍历它们,并根据元值手动重新排序。对于少数列表,它不会增加大量开销,但我会避免任何规模的这种方法。

理想情况下,您只需存储整数(或浮点)值,例如:
0
0
22000
323000
,等。这将允许您添加任何货币符号和格式您想稍后,它使排序和操作更容易

因此,首先,你应该评估你是否能够通过并做到这一点(这可能是值得的)

除此之外,您可以尝试使用
meta\u value\u num

然而,我不确定它是否会起作用。源代码显示它向元查询别名添加了
+0
,但没有以其他方式强制转换它-因此我不确定它如何处理美元符号、逗号和其他字符


第三种方法是像现在一样获取结果,然后循环遍历它们,并根据元值手动重新排序。对于少数列表,这不会增加大量开销,但我会避免任何规模的这种方法。

为什么不在这个元字段中只存储数字,以后再添加货币符号?这将使订单变得非常简单。为什么不在这个元字段中只存储数字,以后再添加货币符号呢?这将使订单变得简单。好的,我明白了。但如果没有货币符号和逗号,我无法存储数据,该怎么办?以后使用排序列表的替代方法会更好吗?如果是的话,那么你能给我一个算法或方法,我可以如何排序?非常感谢。好吧,我明白了。但如果没有货币符号和逗号,我无法存储数据,该怎么办?以后使用排序列表的替代方法会更好吗?如果是的话,那么你能给我一个算法或方法,我可以如何排序?非常感谢。