即使数值以单词开头,如何使用‘orderby’=>‘META_VALUE_Num’对数值进行排序?

时间:2014-02-24 作者:user1280853

我正在使用\'orderby\' => \'meta_value_num\' 为了订购一些作为自定义帖子类型的船只,订购的元数据是船只模型,通常只是数字,但如果您查看此页面:http://boats-barcos.com/brands/ferretti/ 您将看到ALTURA 840排在最后,此时它应该介于800和870之间。这显然是因为值以单词开头。我怎样才能得到orderby 查询是否仅按数值排序而忽略该单词?

1 个回复
SO网友:s_ha_dum

如果你看看50+ similar questions on Stack Overflow 您将看到,这样做非常困难,而且一旦运行起来,就不会有非常高效的查询。MySQL并不是以这种方式构建的,老实说,您想要的排序模式确实非常奇特。以任何标准来看,这都不是一种正常的分类。

这就是纯SQL。WP_Query 它的精细度要小得多——无论如何都不需要应用过滤器。

最好的方法是在insert上规范化数据,将数字部分保存到一个键,其余部分保存到其他位置。或者强制数字在前面加上一些标记,比如逗号,这样可以在显示时将数字变回末尾。

结束

相关推荐

Order by meta value

我有一个自定义的帖子类型,它有一个名为deck-number 客户希望按组编号对结果进行排序。仅供参考,甲板编号为数值。所以我使用了像bellow这样的查询。get_posts(\'post_type=decks&nopaging=true&meta_key=deck-number&orderby=meta_value&order=ASC\'); 我面临的问题是,我得到的结果排序是1、10、11、12、2、3、4、5、6、7、8、9。我需要你的建议来解决。谢谢