在WordPress中,如何对文章查询结果排序?
WP_Query中提供了 order 和 orderby 参数,可以很方便的对查询出的文章排序。
order 支持 ASC 顺序 和 DESC 逆序。
orderby 即排序方式,支持的方式则可谓五花八门。
none - 不排序;
ID - 按文章ID排序;
author - 按作者排序;
title - 按文章标题排序;
name - 按文章slug排序;
type - 按文章类型排序;
date - 按文章发布日期排序;
modified - 按文章修改日期排序
parent - 按文章parent排序;
rand - 随机顺序
comment_count - 按评论数量排序
menu_order - 文章类型为page时,即页面,编辑时可看见【页面属性】里有排序,可设置数值。当文章为post时,这个数值为0。所以说,只有当文章类型是 page 时,按menu_order排序才有效;
meta_key,meta_value - 根据文章的附属属性排序。还可以使用 meta_type 设置 meta 的数据类型,如NUMERIC, BINARY, CHAR, DATE, DATETIME, DECIMAL, SIGNED, TIME, UNSIGNED等,相应的应当使用meta_value_*,如meta_value_num、meta_value_datetime 等;
post_in - 需和参数 post_in 配合使用;
post_name_in - 需和参数 post_name_in 配合使用;
post_parent_in - 需和参数 post_parent_in 配合使用;
使用示例:
// 按文章标题排序
$args = array(
'orderby' => 'title',
'order' => 'DESC',
);
$query = new WP_Query($args);
// 按标题和【排序】值排序
$args = array(
'orderby' => 'menu_order title',
'order' => 'DESC',
);
$query = new WP_Query($args);
// 按随机顺序排序
$args = array(
'orderby' => 'rand',
'posts_per_page' => '1',
);
$query = new WP_Query($args);
// 按评论数量排序
$args = array(
'orderby' => 'comment_count'
);
$query = new WP_Query($args);
// 按文章属性 price 排序
$args = array(
'post_type' => 'product',
'orderby' => 'meta_value_num',
'meta_key' => 'price',
);
$query = new WP_Query($args);
// 按标题【顺序】,ID【逆序】排序
$args = array(
'orderby' => array('title' => 'ASC', 'ID' => 'DESC')
);
$query = new WP_Query($args);
// 文章属性值 和 标题也可以同时排序
$args = array(
'orderby' => array('meta_value_num' => 'DESC', 'title' => 'ASC'),
'meta_key' => 'age'
);
$query = new WP_Query($args);
// 和meta_query联合使用
$args = array(
'post_type' => 'my_custom_post_type',
'meta_key' => 'age',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'age',
'value' => array(3, 4),
'compare' => 'IN',
),
),
);
$query = new WP_Query($args);
// 多个文章属性同时排序
$q = new WP_Query(array(
'meta_query' => array(
'relation' => 'AND',
'state_clause' => array(
'key' => 'state',
'value' => 'Wisconsin',
),
'city_clause' => array(
'key' => 'city',
'compare' => 'EXISTS',
),
),
'orderby' => array(
'city_clause' => 'ASC',
'state_clause' => 'DESC',
),
));
WP_Query 的基础用法可以参考文章:WP_Query 的基础用法简介
-
WordPress函数:number_format_i18n 数字国际化WordPress函数:number_format_i18n 数字国际化
-
WordPress函数:date_i18n 日期国际化WordPress函数:date_i18n 日期国际化
-
WordPress函数:esc_html_e 转义翻译的字符串并显示WordPress函数:esc_html_e 转义翻译的字符串并显示
-
WordPress函数:esc_attr_e 属性转义、翻译、显示WordPress函数:esc_attr_e 属性转义、翻译、显示
-
WordPress函数:esc_attr_x 带上下文的转义属性,翻译显示WordPress函数:esc_attr_x 带上下文的转义属性,翻译显示
-
WordPress必备:使用wp_get_theme()函数获取当前主题详情在WordPress中,wp_get_theme() 函数用于获取当前启用的主题或指定主题的信息。这个函数返回一个 WP_Theme 对象,该对象包含了主题的详细信息,如主题名称、版本、模板目录、样式表目录等。
暂无评论,抢个沙发...