折騰 WordPress 的朋友一定都知道 WordPress 的文章列表頁的文章排序默認都是按照文章發佈日期從新到舊來排列,而對於某些自定義要求很高的網站是不夠的,那麼我們可以通過 query_posts 這個函數來控制 WordPress 的文章排序。首先我們要了解你需要修改哪個頁面的文章排序,比如説你需要控制首頁的文章排序,那麼就找到 index.php,如果需要修改標籤頁就找到 tag.php,如果需要修改分類頁面就找到 category.php,而修改歸檔頁面則是找到 archive.php 。確認了你所需修改的頁面後,我們就可以開始做修改了,比如説你想讓首頁的文章按評論數量來排序,那麼你就應該這樣修改,打開 index.php 找到類似於 if (have_posts()) 這類的 WordPress 主循環,將其修改成一下代碼:
<?php
// query_posts 函數
query_posts('orderby=comment_count'); //以評論最多到最少的排序方式
//主循環
if ( have_posts() ) : while ( have_posts() ) : the_post();
?>
查找
<?php endwhile; ?>
修改成
<?php endwhile; else: ?>
然後查找
<?php endif; ?>
修改成
<?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
);
query_posts($args);
//主循環
if ( have_posts() ) : while ( have_posts() ) : the_post();
?>
至此 WordPress 就可以完美的按照評論的多少來進行排序了,如果需要其他排序方法可以參考官方文檔進行修改。