2017-06-29 130 views
1

我想按字母顺序排列WP中的帖子,但是我没有得到我期待的结果。这就是我得到:Wordpress - 按字母顺序排列包含数字和字母的帖子

NOZ - 1 apple 
    NOZ - 10 orange 
    NOZ - 11 banana 
    NOZ - 2 tree 
    NOZ - 3 grass 

这是我想要得到什么:

NOZ - 1 apple 
    NOZ - 2 tree 
    NOZ - 3 grass 
    NOZ - 10 orange 
    NOZ - 11 banana 

这是我的PHP代码:

<?php $loop = new WP_Query(array('post_type' => 'myPosts', 'orderby' => 'title', 'order' => 'ASC', 'posts_per_page' => -1) ); ?> 

非常感谢你的帮助。

回答

2

您可以将MySQL函数添加到orderby字段。例如:

'orderby' => 'CAST(SUBSTRING(title, 7) as unsigned)' 

子字符串函数提取第7个位置后面包括该字符的所有字符。

转换函数将提取的字符转换为无符号整数。演员功能从左到右工作。它放弃所有不是数字的字符。在这里回答了类似的问题:SQL order string as number

+0

太棒了,它的工作,非常感谢! –