在另一个帖子上问这个问题并且认为我已经找到了一个标记为已解决的解决方案。
我有一个名为课程的自定义帖子类型,并且在其中有一个名为pdf-order的字段,它基本上代表帖子将要显示的列表中的位置。我试图让它排序,但没有运气。
这是我的代码:
$course_loop = new WP_Query( array( 'post_type' => 'course',
'posts_per_page' => 30,
'meta_key' => 'pdf-order',
'orderby'=> 'meta_value',
'order' => 'desc' ) );
有人能为我解释一下吗?
由于
答案 0 :(得分:1)
您的原始查询是正确的。
但是!
我今天也在codex中发现了这一点
我假设你的CF'pdf-order'是数字。
但是wp按字母顺序排序
所以,如果我们有'1,2,3,10,11'
它将订购:1,10,11,2,3
而不是你期望的(1,2,3,10,11)
因此,添加起始零,因此它将变为:'001,002,003,010,011'
我希望这有帮助
答案 1 :(得分:1)
如果您在自定义字段中为数字值订购帖子,则可以使用meta_value_num
代替meta_value
。
$course_loop = new WP_Query( array( 'post_type' => 'course',
'posts_per_page' => 30,
'meta_key' => 'pdf-order',
'orderby'=> 'meta_value_num',
'order' => 'desc' ) );