如何移除Divi自定义文章类型分页链接中的?et_blog参数?
解决方案:DIVI主题自定义文章类型分类归档分页修复
一、先重置固定链接规则
- 进入WP后台 → 设置 → 固定链接,临时切换为其他格式保存,再换回你当前使用的格式(比如
/%postname%/)。这一步会刷新WordPress的重写规则库,是解决分页404问题的基础操作。
二、添加自定义重写规则与查询调整
在子主题的functions.php(优先使用子主题,避免主题更新丢失代码)中插入以下代码:
// 为自定义文章类型的分类归档添加分页重写规则 function custom_cpt_category_pagination_rewrite() { // 替换为你的自定义文章类型slug,比如'recipe', 'articles' $cpts = array('recipe', 'articles'); foreach ($cpts as $cpt) { add_rewrite_rule( '^' . $cpt . '/([^/]+)/page/(\d+)/?$', 'index.php?post_type=' . $cpt . '&category_name=$matches[1]&paged=$matches[2]', 'top' ); } } add_action('init', 'custom_cpt_category_pagination_rewrite'); // 修正DIVI对自定义文章类型归档的查询逻辑 function fix_cpt_pagination_query_vars($query) { if (!is_admin() && $query->is_main_query() && (is_category() || is_tax())) { $cpts = array('recipe', 'articles'); foreach ($cpts as $cpt) { if (get_post_type() === $cpt) { $query->set('post_type', $cpt); // 自动移除?et_blog参数并跳转 if (isset($_GET['et_blog'])) { wp_redirect(remove_query_arg('et_blog', $_SERVER['REQUEST_URI'])); exit; } break; } } } return $query; } add_action('pre_get_posts', 'fix_cpt_pagination_query_vars');
代码说明:
- 第一段代码为每个自定义文章类型的分类归档创建
post_type/category/page/2/格式的重写规则,让WordPress能正确解析分页URL。 - 第二段代码在主查询阶段强制加载对应自定义文章类型的内容,同时自动清理
?et_blog参数(这个参数是DIVI强制加载博客模板时自动添加的)。
添加代码后必须再次刷新固定链接规则(重复步骤一的操作),否则新规则不会生效。
三、替换DIVI构建器中的分页模块(优化自定义短码)
如果你之前用自定义短码实现分页,用以下代码替换原有短码函数,保证生成的URL符合预期格式:
// 自定义非AJAX分页短码,适配自定义文章类型分类归档 function custom_cpt_pagination_shortcode() { global $wp_query; if (!is_archive()) return; $big = 999999999; // 用于避免分页链接冲突 $pagination = paginate_links(array( 'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))), 'format' => 'page/%#%/', 'current' => max(1, get_query_var('paged')), 'total' => $wp_query->max_num_pages, 'type' => 'list', 'prev_text' => __('上一页'), 'next_text' => __('下一页') )); // 清理分页链接中可能存在的?et_blog参数 $pagination = str_replace('?et_blog', '', $pagination); return $pagination; } add_shortcode('custom_cpt_pagination', 'custom_cpt_pagination_shortcode');
在DIVI构建器中插入「代码模块」,调用[custom_cpt_pagination]短码即可生成符合要求的分页链接。
四、排查DIVI归档模板设置
- 进入DIVI → 主题定制 → 归档页面,确保自定义文章类型的分类归档选择「自定义布局」,而非默认的博客布局,避免DIVI强制加载博客模板触发
?et_blog参数。 - 如果使用了DIVI自定义模板,检查模板的查询源是否设置为对应自定义文章类型的分类内容。
内容的提问来源于stack exchange,提问作者WP Developer
相关产品推荐
相关产品推荐

