You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用add_rewrite_rule为WordPress自定义文章类型添加子页面重定向

问题核心

你的重写规则没生效,是因为WordPress查询系统会优先匹配emplacement自定义文章类型的slug——哪怕你在规则里加了page_id=200,WP还是会先把([^/]+)识别为emplacement的slug,优先加载对应的自定义文章类型内容,直接忽略了page_id参数。

解决步骤
  • 注册自定义查询变量
    先给WordPress注册一个自定义变量,用来标记当前是子页面请求,避免和默认查询逻辑冲突:

    function register_emplacement_subpage_var() {
        global $wp;
        $wp->add_query_var('emplacement_subpage');
    }
    add_action('init', 'register_emplacement_subpage_var');
    
  • 修改重写规则
    调整规则,用自定义变量标识子页面类型,同时保留emplacement的slug参数,让WP不会直接优先匹配自定义文章类型:

    function custom_rewrite_rules() {
        // 匹配landingpage子页面
        add_rewrite_rule(
            '^emplacements/([^/]+)/landingpage/?$',
            'index.php?emplacement=$matches[1]&emplacement_subpage=landingpage',
            'top'
        );
        // 另外3个子页面可以照此添加,比如:
        // add_rewrite_rule('^emplacements/([^/]+)/subpage2/?$', 'index.php?emplacement=$matches[1]&emplacement_subpage=subpage2', 'top');
    }
    add_action('init', 'custom_rewrite_rules');
    
  • 强制加载指定Elementor模板
    用template_include过滤器,检测到自定义子页面变量时,强制加载ID为200的页面模板:

    function emplacement_subpage_template($template) {
        $subpage = get_query_var('emplacement_subpage');
        $emplacement = get_query_var('emplacement');
        
        // 确认是emplacement的子页面请求
        if ($subpage && $emplacement) {
            // 获取ID200页面的模板路径
            $custom_template = get_page_template_path(200);
            if ($custom_template) {
                return $custom_template;
            }
        }
        return $template;
    }
    add_filter('template_include', 'emplacement_subpage_template', 99);
    
  • 刷新重写规则
    代码添加完成后,进入WP后台「设置→固定链接」页面,直接点击「保存更改」(不用修改任何设置),让新的重写规则生效。

补充说明

如果4个子页面需要不同的Elementor模板,只要修改emplacement_subpage_template函数,根据$subpage的值加载对应ID的页面模板即可。另外要确保ID为200的页面确实存在,且Elementor已为其配置好自定义模板。

内容的提问来源于stack exchange,提问作者Lucien Dubois

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 07:11:10