WordPress自定义文章类型vacancies分页失效问题求助
自定义文章类型(vacancies)分页问题解决
我来帮你搞定这个分页故障,你遇到的核心问题是用query_posts覆盖主查询后,打乱了WordPress原生的分页逻辑和模板选择机制。用钩子修改主查询才是正确的思路,下面是具体修复步骤:
第一步:修正archive-vacancies.php模板代码
把你原来的代码替换成下面的内容,移除query_posts相关的手动查询代码,恢复默认主循环:
<?php get_header(); // 原生主循环,无需手动重新发起查询 if ( have_posts() ) : while ( have_posts() ) : the_post(); // 这里放置你的职位内容展示代码 // 示例:the_title('<h2>', '</h2>'); the_excerpt(); endwhile; // 分页导航 wp_pagenavi(); else : get_template_part( 'includes/no-results', 'index' ); endif; get_footer(); ?>
第二步:用pre_get_posts钩子调整主查询参数
在你的主题functions.php文件末尾添加以下代码,通过钩子精准修改vacancies归档页的每页显示数量,完全兼容原生分页逻辑:
add_action( 'pre_get_posts', 'custom_vacancies_posts_per_page' ); function custom_vacancies_posts_per_page( $query ) { // 仅针对前台主查询、且是vacancies归档页生效 if ( !is_admin() && $query->is_main_query() && is_post_type_archive( 'vacancies' ) ) { $query->set( 'posts_per_page', 3 ); } }
第三步:刷新固定链接规则
进入WordPress后台的「设置」→「固定链接」,不需要修改任何设置,直接点击「保存更改」。这一步是为了让WordPress更新重写规则,确保分页URL能正确匹配到你的自定义归档模板。
完成以上三步后,访问mydomain.com/vacancies/page/2时,系统会正确加载archive-vacancies.php模板,并且正常显示第二页的职位内容,不会再出现无结果的提示。
内容的提问来源于stack exchange,提问作者Jason
相关产品推荐
相关产品推荐

