公告:123目录网为广大站长提供免费收录网站服务,我们将免费进行到底,如需快审服务(10元/站)请联系站长QQ,可自助充值发布。

点击这里在线咨询客服
新站提交
  • 网站:315
  • 待审:0
  • 小程序:12
  • 文章:35791
  • 会员:69

WP_Queryorderby 参数用于告诉获取的 Posts 是基于哪列进行排序的,默认是 post_date,并且 WP_Query 的默认排序顺序是降序,就是最新发布的日志排在前面。

WP_Queryorderby 基本用法

$q = new WP_Query( array( 'orderby' => 'post_title' ) );

或者:

$q = new WP_Query( array( 'orderby' => 'title' ) );

这两段代码都会生成如下的 SQL:

ORDER BY post_title DESC

WP_Queryorderby 高级用法

orderby 还可以接受有空格分开的多列:

$q = new WP_Query( array( 'orderby' => 'title author' ) );

在 4.0 之前,上面的代码会有问题,order 的值只会就加到 orederby 语句的最后,所以生成的 SQL 会这样子:

ORDER BY post_title, post_author DESC

因为 MySQL 默认的排序顺序是 ASC(升序),所以上面语句的结果就会和我们预期的不同,我们希望是按照标题降序,然后按照作者降序,而实际是按照标题升序,然后按照作者降序。

所以到 4.0,WordPress 修正了这个问题,如果你输入用空格分开的多列,每个列后面都会加入排序顺序,并且 4.0 还可以让你控制每列的排序顺序,我们可以通过传递一个数组给 WP_Queryorderby 参数:

$q = new WP_Query( array( 'orderby' => array( 'title' => 'DESC', 'menu_order' => 'ASC' ) ) );

生成的 SQL:

ORDER BY post_title DESC, menu_order ASC

更详细用法可以参考:WP_Query 累的 parse_order() 方法。

标签:wordpress教学

下一篇:【wordpress教学】WordPress 技巧:通过图片地址获取 ID

上一篇:【wordpress教学】文章目录扩展默认的 JS 代码和 CSS 代码

相关文章

  575

注册时间:

网站:1 个   小程序:3 个  文章:12 篇

  • 315

    网站

  • 12

    小程序

  • 35791

    文章

  • 69

    会员

赶快注册账号,推广您的网站吧!
最新入驻小程序

数独大挑战2018-06-03

数独一种数学游戏,玩家需要根据9

答题星2018-06-03

您可以通过答题星轻松地创建试卷

全阶人生考试2018-06-03

各种考试题,题库,初中,高中,大学四六

运动步数有氧达人2018-06-03

记录运动步数,积累氧气值。还可偷

每日养生app2018-06-03

每日养生,天天健康

体育训练成绩评定2018-06-03

通用课目体育训练成绩评定