如何根据来源跳转URL自动修改Elementor页面的标题内容
解决方案
为什么wp_get_referer()不生效
常见原因有三类:
- 跳转时来源域名未配置传递referer
- 浏览器隐私设置主动拦截了referer信息
- 用户直接访问落地页时没有来源信息
方案1:Referer适配方案(仅适合跳转带referer的场景)
适配Elementor模板无需改核心代码,通过短代码实现动态调用:
- 将下方代码添加到当前WordPress主题的
functions.php文件,或使用Code Snippets插件插入自定义PHP代码:
// 注册获取来源域名的短代码 add_shortcode('get_referer_domain', function() { $referer = wp_get_referer(); if ($referer) { $parsed_url = parse_url($referer); return isset($parsed_url['host']) ? $parsed_url['host'] : '待售域名'; } // 无来源时的默认展示内容,可自行修改 return '优质域名'; });
- 打开Elementor模板的标题编辑界面,直接在标题内容位填入短代码
[get_referer_domain]即可,支持搭配自定义文本使用,比如[get_referer_domain] 正在出售。
方案2:跳转带参方案(兼容性100%,推荐使用)
Referer容易丢失,更稳妥的方式是在你所有待售域名的跳转配置里,给落地页加上域名参数,比如跳转地址设置为https://page.com/?from=你要展示的待售域名,再通过短代码读取参数:
- 同样将下方代码添加到主题
functions.php或Code Snippets插件:
// 注册获取跳转参数域名的短代码 add_shortcode('get_sale_domain', function() { if (isset($_GET['from']) && !empty($_GET['from'])) { // 安全过滤避免恶意内容输出 return esc_html(sanitize_text_field($_GET['from'])); } // 无参数时的默认展示内容 return '优质域名'; }); // 可选:同步修改浏览器顶部的页面标题 add_filter('pre_get_document_title', function($origin_title) { if (isset($_GET['from']) && !empty($_GET['from'])) { return esc_html(sanitize_text_field($_GET['from'])) . ' 正在出售'; } return $origin_title; }, 999);
- Elementor标题内容位填入短代码
[get_sale_domain]即可生效。
内容的提问来源于stack exchange,提问作者Steve K.
相关产品推荐
相关产品推荐

