WordPress默认输出的文章都是按发布时间降序来排序,即是最新发布的文章在最上面。其实,我们可以通过配置orderby参数来实现WordPress文章自定义排序,下面boke112百科就跟大家详细介绍几种使用方法。

1、常规用法的排序
如果我们平时不设置orderby参数的话,默认就是:
'orderby' => 'date'
其实,orderby参数除了date还有很多,比如:
- ID:按文章/内容的ID排序
- author:按作者ID排序
- title:按标题排序
- name:按文章别名(slug)排序
- type:按内容类型排序(如文章、页面、自定义文章类型)
- modified:按最后修改日期排序
- parent:按父级ID排序(适用于有层级关系的内容,如页面)
- comment_count:按评论数量排序
- menu_order:按菜单顺序排序(主要用于页面)
- rand:随机排序
- meta_value/meta_value_num:按自定义字段值排序(meta_value_num用于数值比较)
- post__in:按post__in参数中指定的ID顺序排序
- post_name__in:按post_name__in参数中指定的别名顺序排序
- post_parent__in:按post_parent__in参数中指定的父级ID顺序排序
使用示例(在WP_Query中):
// 按标题升序排序
$args = array(
'post_type' => 'post',
'orderby' => 'title',
'order' => 'ASC'
);
$query = new WP_Query($args);
其中“order”的参数有两个,分别是升序ASC和降序DESC。
2、使用单一自定义字段的排序
比如我们平时都是用自定义字段views来存储文章阅读量,如果你想要按阅读量输出文章,那么只需要:
// 按阅读量降序排序
$args = array(
'post_type' => 'post',
'meta_key' => 'views',
'orderby' => 'meta_value_num',
'order' => 'DESC'
);
$query = new WP_Query($args);
同样道理,如果你想要输出按点赞量排序的文章,只需要将上述代码中的“views”修改为你网站中保存点赞量的自定义字段名称即可。
3、使用多个自定义字段的排序
如果你的文章对应有多个自定义字段,比如有pingjunfen和zongfen,想要按pingjunfen降序排序,若pingjunfen值相同就按zongfen降序排序,那么只需要:
$args = array(
'post_type' => 'post',
'meta_query' => array(
'relation' => 'AND',
'pingjunzhi_clause' => array(
'key' => 'pingjunzhi',
'type' => 'NUMERIC',
'compare' => 'EXISTS',
),
'zongfen_clause' => array(
'key' => 'zongfen',
'type' => 'NUMERIC',
'compare' => 'EXISTS',
),
),
'orderby' => array(
'pingjunzhi_clause' => 'DESC',
'zongfen_clause' => 'DESC',
),
);
如果需要按更多个自定义字段排序的话,只需要根据上述代码中添加第三个、第四个、…、第N个自定义字段代码即可。

















桂公网安备 45010502000016号