WordPress文章自定义排序需要配置orderby参数

秦兽兽 2020-10-02 132 0
当前位置 : 首页 经验总结 Wordpress建站 WordPress文章自定义排序需要配置orderby参数

WordPress 默认文章列表排序方式是根据发布时间,也就是最新的文章显示在列表最前面,那么我们如果想自定义文章的排序呢?如按修改时间、按评论数,甚至是按照阅读量排序~

WordPress 文章查询有若干种方法,本文仅拿 query_posts($args)数据查询来说,通过配置其中的 orderby 参数来实现各种排序。

<?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=modified
  • 按文章 ID 排序 orderby=ID
  • 按评论最多排序 orderby=comment_count
  • 按标题排序 orderby=title
  • 随机排序 orderby=rand

特殊用法:

如果我们想通过浏览量来排序呢?要知道 WordPress 默认是没有浏览量这个功能的,但是大多数的用户都通过主题或者插件实现了文章阅读量,其原理无一例外是通过自定义栏目增加阅读量的统计。因此我们可以通过自定义栏目的值大小来实现阅读量排序。

首先确定你的文章阅读量的自定义栏目名称,一般为 views,然后我们将查询函数进行修改即可,得到如下代码:

<?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; ?>
本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有。若您需要使用非免费的软件或服务,请购买正版授权并合法使用。本站发布的内容若侵犯到您的权益,请联系站长删除,我们将及时处理。
留言
相关推荐
公众号
秦兽兽

个人博客-得之,我幸。失之,我命,如此而已

https://www.qinshoushou.com