WP-Admin后台每页显示5条而非20条帖子的实现求助
解决WordPress后台文章列表每页显示5条且分页失效的问题
嘿,我太懂你这个头疼的问题了——手动改完每页5条帖子,分页直接罢工,确实闹心。这多半是因为后台手动设置时,某些主题或插件的自定义逻辑干扰了分页计算,或者WordPress默认的分页参数没跟上手动修改的值。下面给你两个靠谱的实现方案,保证分页稳稳工作:
方案一:用官方钩子修改默认显示数量(首推)
通过edit_posts_per_page钩子强制设置后台文章列表的每页显示数,这是WordPress官方支持的方式,分页逻辑会自动适配这个数值,绝不会失效。
把这段代码加到你的主题functions.php文件里,或者做个简单的自定义插件来加载它:
// 自定义后台文章列表每页显示数量,确保分页正常 add_filter('edit_posts_per_page', 'custom_admin_posts_per_page', 10, 2); function custom_admin_posts_per_page($posts_per_page, $post_type) { // 只对默认文章(post)类型生效,要是需要适配自定义文章类型,改这里就行 if ($post_type === 'post') { return 5; // 设定为每页5条 } // 其他文章类型保持原有设置 return $posts_per_page; }
代码说明:
edit_posts_per_page是WordPress专门用来修改后台列表每页显示数的钩子,会接收默认显示数和当前文章类型两个参数。- 我们通过判断文章类型,只给普通文章改显示数,页面、自定义文章类型这类不受影响。
- 用这种方式设置后,后台分页会自动按5条/页计算,再也不会出现失效的情况。
方案二:修复自定义查询的分页参数(针对自定义后台列表)
如果你是在自定义的后台文章列表(比如自定义文章类型的管理页)遇到这个问题,得确保查询时正确传递paged参数,让分页逻辑能算出正确的页码:
// 确保自定义后台查询的分页参数正确 add_action('pre_get_posts', 'fix_custom_admin_pagination'); function fix_custom_admin_pagination($query) { // 仅在后台且是主查询时生效 if (is_admin() && $query->is_main_query() && $query->get('post_type') === 'post') { $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $query->set('posts_per_page', 5); $query->set('paged', $paged); } }
小提醒:
- 千万别直接改WordPress核心文件,所有自定义代码都放主题
functions.php或者独立自定义插件里,不然主题更新后代码就没啦。 - 加完代码刷新后台文章列表页,就能看到每页5条,分页功能也正常跑起来了。
内容的提问来源于stack exchange,提问作者Scenox
相关产品推荐
相关产品推荐

