WordPress文章排序(WP_Query)
WordPress是一个非常强大的程序,通过各种自定义配置,可以实现各种需求。 今天,我们通过配置WP_Query来实现文章的的自定义排序。
排序和排序类型相关参数
有关文章排序方法和类型的查询,有两个参数可以使用:
order(字符串 | 数组):排序方法,ASC 为正序(从小到大);DESC 为倒序(从大到小)
orderby(字符串 | 数组):根据什么字段排序,默认是 post_date(文章日期)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | //按标题倒序 //根据文章标题进行倒序排列: $query = new WP_Query( array ( 'orderby' => 'title', 'order' => 'DESC' ) ); //先根据 menu_order 排序,如果出现无法排序的情况(比如相同或者为空)则再利用 title 排序。 $query = new WP_Query( array ( 'orderby' => 'menu_order title', 'order' => 'DESC' ) ); //随机排序 //获取一篇随机文章: $query = new WP_Query( array ( 'orderby' => 'rand', 'posts_per_page' => '1' ) ); //热门文章 //获取根据评论数量排序的文章: $query = new WP_Query( array( 'orderby' => 'comment_count' ) ); //多条件不同排序 //给多个排序条件,每个排序条件有不同的排序方法: $query = new WP_Query( array( 'orderby' => array( 'title' => 'DESC', 'menu_order' => 'ASC' ) ) ); |
自定义字段
获取文章自定义字段 age 是 3 或 4 的文章,并且按照 age 字段值的数字大小排序:
1 2 3 4 5 6 7 8 9 10 11 12 13 | $args = array( '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 ); |