1. 程式人生 > >wordpress手動自定義文章顯示數量

wordpress手動自定義文章顯示數量

WordPress每頁顯示的文章數在後臺閱讀設定中指定,會應用到blog列表頁(通常是首頁)、搜尋頁、標籤頁、分類頁以及時間索引頁面,加入這些頁面的結構不盡相同,例如有的顯示標題和摘要,有的只顯示標題,那麼指定相同的頁數就不適用於每個頁面了。要根據頁面型別指定每頁顯示文章數,需要寫程式碼實現。

推薦的方法

修改每頁顯示的文章數也就是修改posts_per_page引數,將下面的程式碼放到functions.php中即可實現,程式碼來自WordPress Answers

function custom_posts_per_page($query){
    if(is_home()){
    $query->set('posts_per_page',8);//首頁每頁顯示8篇文章
    }
    if(is_search()){
        $query->set('posts_per_page',-1);//搜尋頁顯示所有匹配的文章,不分頁
    }
    if(is_archive()){
        $query->set('posts_per_page',25);//archive每頁顯示25篇文章
}//endif
}//function
 
//this adds the function above to the 'pre_get_posts' action    
add_action('pre_get_posts','custom_posts_per_page');

不推薦使用的方法

不推薦直接修改主題模板,例如在index.php主迴圈前用query_posts更改每頁顯示文章數目

query_posts( 'posts_per_page=5' );

缺點:

第一,增加查詢次數

第二,靈活度不高,如果分類、標籤有自己的模板,還需要到那些模板裡重複query_posts的把戲。

第三,query_posts使用時需特別小心,如果忘記恢復全域性變數,可能會出現莫名其妙的錯誤。