问题背景
许多WordPress用户在设置首页显示文章数量时发现,实际显示的文章数与后台设置的数量不符。这是因为WordPress默认情况下会将”置顶文章”计算在首页显示的文章总数内,导致普通文章显示数量减少。
解决方案
方法一:修改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');
这段代码会自动计算置顶文章数量,并将其加到默认显示文章数中,确保首页显示的文章总数符合预期。
方法二:使用插件
- 安装并激活”Custom Post Limits”插件
- 在设置中找到”Reading”选项
- 调整”Main query posts per page”数值,确保包含置顶文章数量
方法三:修改查询参数
在主题的index.php文件中修改主查询:
$sticky = count(get_option('sticky_posts'));
$ppp = get_option('posts_per_page');
query_posts(array('posts_per_page' => $ppp + $sticky));
注意事项
- 修改代码前请备份网站
- 使用子主题进行修改,避免主题更新导致更改丢失
- 置顶文章数量不宜过多,建议控制在3-5篇以内
- 过多的置顶文章可能影响网站性能和用户体验
效果验证
修改完成后,可以:
- 清空WordPress缓存
- 刷新首页查看实际显示文章数
- 确保总数=置顶文章数+普通文章数
通过以上方法,您可以轻松解决WordPress首页显示文章数包含置顶文章的问题,使网站展示更加符合您的预期。