問(wèn)題背景
許多WordPress用戶(hù)在設(shè)置首頁(yè)顯示文章數(shù)量時(shí)發(fā)現(xiàn),實(shí)際顯示的文章數(shù)與后臺(tái)設(shè)置的數(shù)量不符。這是因?yàn)閃ordPress默認(rèn)情況下會(huì)將”置頂文章”計(jì)算在首頁(yè)顯示的文章總數(shù)內(nèi),導(dǎo)致普通文章顯示數(shù)量減少。
解決方案
方法一:修改functions.php文件
在主題的functions.php文件中添加以下代碼:
function custom_posts_per_page($query) {
if (is_home() && $query->is_main_query()) {
$sticky_posts = count(get_option('sticky_posts'));
$posts_per_page = get_option('posts_per_page');
$query->set('posts_per_page', $posts_per_page + $sticky_posts);
}
}
add_action('pre_get_posts', 'custom_posts_per_page');
這段代碼會(huì)自動(dòng)計(jì)算置頂文章數(shù)量,并將其加到默認(rèn)顯示文章數(shù)中,確保首頁(yè)顯示的文章總數(shù)符合預(yù)期。
方法二:使用插件
- 安裝并激活”Custom Post Limits”插件
- 在設(shè)置中找到”Reading”選項(xiàng)
- 調(diào)整”Main query posts per page”數(shù)值,確保包含置頂文章數(shù)量
方法三:修改查詢(xún)參數(shù)
在主題的index.php文件中修改主查詢(xún):
$sticky = count(get_option('sticky_posts'));
$ppp = get_option('posts_per_page');
query_posts(array('posts_per_page' => $ppp + $sticky));
注意事項(xiàng)
- 修改代碼前請(qǐng)備份網(wǎng)站
- 使用子主題進(jìn)行修改,避免主題更新導(dǎo)致更改丟失
- 置頂文章數(shù)量不宜過(guò)多,建議控制在3-5篇以?xún)?nèi)
- 過(guò)多的置頂文章可能影響網(wǎng)站性能和用戶(hù)體驗(yàn)
效果驗(yàn)證
修改完成后,可以:
- 清空WordPress緩存
- 刷新首頁(yè)查看實(shí)際顯示文章數(shù)
- 確保總數(shù)=置頂文章數(shù)+普通文章數(shù)
通過(guò)以上方法,您可以輕松解決WordPress首頁(yè)顯示文章數(shù)包含置頂文章的問(wèn)題,使網(wǎng)站展示更加符合您的預(yù)期。