前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WordPress 4.0 WP_Query 引入更强大的 Order By

WordPress 4.0 WP_Query 引入更强大的 Order By

作者头像
Denis
发布2023-04-15 10:33:50
2160
发布2023-04-15 10:33:50
举报
文章被收录于专栏:WordPress果酱

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

WP_Queryorderby 基本用法

代码语言:javascript
复制
$q = new WP_Query( array( 'orderby' => 'post_title' ) );

或者:

代码语言:javascript
复制
$q = new WP_Query( array( 'orderby' => 'title' ) );

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

代码语言:javascript
复制
ORDER BY post_title DESC

WP_Queryorderby 高级用法

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

代码语言:javascript
复制
$q = new WP_Query( array( 'orderby' => 'title author' ) );

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

代码语言:javascript
复制
ORDER BY post_title, post_author DESC

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

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

代码语言:javascript
复制
$q = new WP_Query( array( 'orderby' => array( 'title' => 'DESC', 'menu_order' => 'ASC' ) ) );

生成的 SQL:

代码语言:javascript
复制
ORDER BY post_title DESC, menu_order ASC

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


本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • WP_Query 的 orderby 基本用法
  • WP_Query 的 orderby 高级用法
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档