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())
新聞熱點
疑難解答
圖片精選