wordpress博客排序时我们一般只用系统默认了,如果我们让它按日期来排序要如何操作了,下文小编来为各位介绍一下吧.
按日期排序,首先打开首页 index.php 文件,找如类似于 if (have_posts()) 这样的循环,然后修改成如下的代码:
- <?php
- // query_posts函数
- query_posts('orderby=comment_count'); //以评论最多到最少的排序方式
- //主循环
- if ( have_posts() ) : while ( have_posts() ) : the_post();
- ?>
查找:<?php endwhile; ?>
修改成:
<?php endwhile; else: ?>
然后查找:修改成如下代码:
- <?php
- endif;
- // 重置query
- wp_reset_query()
- ?>
这个时候文章已经按照评论数量的多少来进行排序了,但有时候会遇到无法分页的情况,哪么我们可以找到query_posts函数修改成如下的代码:
- <?php
- $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;//控制分页
- $args = array(
- // 这里以下面的方式添加query_posts参数,具体参数可以参加官方文档
- 'orderby' => comment_count,
- 'paged' => $paged
- ); //Vevb.com
- query_posts($args);
- //主循环
- if ( have_posts() ) : while ( have_posts() ) : the_post();
- ?>
现在首页已经按照评论的数量多少来进行排序了,如果还要自定义其它页面的排序方法,基本上按照这个来修改就可以了,其它页面的修改要打开相应页面去修改,比如标签页面 tag.php
文章的数量和排序方式
1.可以添加代码至相关页面模板(category.php、search.php、archive.php)
把如下代码:
<?php $posts = query_posts($query_string . '&orderby=date&showposts=15'); ?>
添加至category.php、search.php、archive.php或其它页面模板中,以下函数之前:
<?php if (have_posts()) : ?><?php while (have_posts()) : the_post(); ?>
代码中的15就是显示多少条。
增加文章排序方式:
- <h4>文章排序</h4>
- <ul>
- <li><a <?php if ( isset($_GET['order']) && ($_GET['order']=='rand') ) echo 'class="current"'; ?> href="/?order=rand" rel="nofollow">随机阅读</a></li>
- <li><a <?php if ( isset($_GET['order']) && ($_GET['order']=='commented') ) echo 'class="current"'; ?> href="/?order=commented" rel="nofollow">评论最多</a></li>
- <li><a <?php if ( isset($_GET['order']) && ($_GET['order']=='alpha') ) echo 'class="current"'; ?> href="/?order=alpha" rel="nofollow">标题排序</a></li>
- </ul>
改变主循环,首先你得先在主题的index.php中找到以下语句:
if (have_posts())
然后在这句之前添加以下代码:
- if ( isset($_GET['order']) )
- {
- switch ($_GET['order'])
- {
- case 'rand' : $orderby = 'rand'; break;
- case 'commented' : $orderby = 'comment_count'; break;
- case 'alpha' : $orderby = 'title'; break;
- default : $orderby = 'title';
- }</p> <p> global $wp_query;
- $args= array('orderby' => $orderby, 'order' => 'DESC');</p> <p> $arms = array_merge($args, $wp_query->query);
- query_posts($arms);
- }</p> <p>if (have_posts())
新闻热点
疑难解答
图片精选