WordPress主題開(kāi)發(fā)的時(shí)候,需要考慮好WordPress首頁(yè)、分類頁(yè)、搜索頁(yè)的分頁(yè)效果,特別是WordPress博客類主題,那么如何實(shí)現(xiàn)首頁(yè)與分類頁(yè)的分頁(yè)?
方案1:首頁(yè)與分類頁(yè)的分頁(yè)放到1個(gè)勾子里。
在function.php文件里添加如下代碼:
function custom_posts_per_page($query){
if(is_home()){
$query->set('posts_per_page',8);//首頁(yè)每頁(yè)顯示8篇文章
}
if(is_search()){
$query->set('posts_per_page',-1);//搜索頁(yè)顯示所有匹配的文章,不分頁(yè)
}
if(is_archive()){
$query->set('posts_per_page',25);//archive每頁(yè)顯示25篇文章
}
}
add_action('pre_get_posts','custom_posts_per_page');
方案2、首頁(yè)與分類頁(yè)分頁(yè)分開(kāi)放到2個(gè)不同的勾子里。
首頁(yè)與分類文章每頁(yè)數(shù)量分開(kāi)來(lái)設(shè)置:
//限制首頁(yè)文章每頁(yè)數(shù)量
function custom_posts_per_page($query){
if(is_home()){
$query->set('posts_per_page',8);//首頁(yè)每頁(yè)顯示8篇文章
}
}
add_action('pre_get_posts','custom_posts_per_page');
//限制分類頁(yè)文章每頁(yè)數(shù)量
function custom_posts_per_page2($query){
if(is_archive()){
$query->set('posts_per_page',25);//archive每頁(yè)顯示25篇文章
}//endif
}
add_action('pre_get_posts','custom_posts_per_page2');
這樣,就不需要在循環(huán)中來(lái)設(shè)置每頁(yè)顯示文章數(shù)量,避免“最后一頁(yè)404”的情況發(fā)生。
注:在列表循環(huán) query_posts()中,不要再使用posts_per_page來(lái)限制數(shù)量,可以使用showposts 來(lái)限制。





