WordPress 默认的文章列表排序方式是基于发布时间,也就是最新的文章显示在列表顶部,那么如果我们要自定义文章排序呢?比如按修改时间,评论数量,甚至阅读量排序~
配置 orderby 参数,实现 WordPress 文章的自定义排序
有几种方法可以查询 WordPress 文章。本文通过配置 orderby 参数,仅使用 query _ post($ args)数据查询来实现各种排序。
<?php
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => '10',
'orderby' => 'date',
'order' => 'DESC',
'caller_get_posts' => 1,
);
$query_posts = new WP_Query();
$query_posts->query($args);
while( $query_posts->have_posts() ) { $query_posts->the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>" rel="external nofollow" rel="external nofollow" title="<?php the_title(); ?>">
<?php the_title(); ?>
</a>
</li>
<?php } wp_reset_query();?>
在上面的查询函数中,我们在 orderby 之后改变值,实现不同的排序方式。
一般用法:
按发布日期排序 orderby=date?
订单修改时间订单修改时间=修改时间
按商品编号排序
按大多数注释排序 orderby=comment_count
Orderby=title =标题
随机排序排序比=rand
特殊用法:
如果我们想按页面浏览量排序呢?要知道 WordPress 默认不具备页面浏览量的功能,但是大部分用户都是通过主题或者插件来实现文章的阅读,原则是无一例外的通过自定义栏目来增加阅读统计。因此,我们可以通过自定义列的值来对阅读量进行排序。
首先,确定你文章阅读量的自定义蓝名,通常是浏览量。
然后,我们可以修改查询函数以获得以下代码
<?php
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => '10', /* 显示几条 */
'meta_key' => 'views',/* 此处为你的自定义栏目名称 */
'orderby' => 'meta_value_num', /* 配置排序方式为自定义栏目值 */
'order' => 'DESC', /* 降序排列 */
'caller_get_posts' => 1,
);
$query_posts = new WP_Query();
$query_posts->query($args);
while( $query_posts->have_posts() ) { $query_posts->the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>" rel="external nofollow" rel="external nofollow" title="<?php the_title(); ?>">
<?php the_title(); ?>
</a>
</li>
<?php } wp_reset_query();?>
还有一个常见的查询函数
<?php
$posts = get_posts(“numberposts=10&meta_key=views&orderby=meta_value_num&order=desc”);
foreach( $posts as $post ) :
?>
……
<?php endforeach; ?>
WordPress 是非常强大的,通过各种自定义配置,可以实现各种各样的需求。
转载请注明:汇站网 » 配置 orderby 参数,实现 WordPress 文章的自定义排序