Wordpress - 按字母顺序对包含数字和字母的帖子进行排序

时间:2017-06-29 15:15:17

标签: php wordpress

我正在尝试按字母顺序对WP中的帖子进行排序,但我没有得到我期望的结果。这就是我得到的:

  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 )    ); ?>

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:2)

您可以在orderby字段中添加MySQL函数。例如:

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

子字符串函数提取第7个字符后面的所有字符。

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