如何移除WordPress站点中子域名链接自动添加的?_gl查询参数?
如何移除WordPress站点中子域名链接自动添加的?_gl查询参数?
嘿,这个_gl参数的问题我之前也碰到过!它其实是GA4(Google Analytics 4)默认开启的跨域跟踪功能自动添加的,用来在主域名和子域名之间保持用户会话的连贯性。想让链接变干净,你可以试试这几个办法:
方法一:在GA4后台直接关闭跨域测量
这是最根源的解决方式,毕竟参数本来就是GA加的:
- 登录你的GA4后台,找到对应网站的媒体资源
- 进入「管理」>「数据流」,选中你当前站点的数据流
- 点击「增强测量」旁边的齿轮图标,展开设置项
- 找到「跨域测量」选项,把它关闭即可
- 小贴士:GA的设置生效可能有延迟,一般等10-30分钟后再测试链接就正常了
方法二:用WordPress过滤器强制移除参数(适合懂点代码的朋友)
如果不想修改GA设置,或者关闭后还是偶尔出现参数,可以用WordPress的过滤器来拦截并移除它。把下面的代码加到主题的functions.php文件里,或者用代码片段插件(比如Code Snippets)添加:
function remove_gl_query_param($url) { // 移除链接中的_gl参数 $url = remove_query_arg('_gl', $url); return $url; } // 给不同类型的链接添加过滤器 add_filter('post_link', 'remove_gl_query_param'); add_filter('page_link', 'remove_gl_query_param'); add_filter('get_permalink', 'remove_gl_query_param'); add_filter('home_url', 'remove_gl_query_param');
这段代码会在WordPress生成任何链接的时候,自动剔除_gl参数,不管它是怎么被加上的。
方法三:前端JavaScript临时处理(应急方案)
如果上面的方法暂时没法操作,也可以用前端JS来修改页面上的链接:
document.addEventListener('DOMContentLoaded', () => { // 遍历页面上所有链接 document.querySelectorAll('a').forEach(link => { const urlObj = new URL(link.href); // 如果链接包含_gl参数就删除 if (urlObj.searchParams.has('_gl')) { urlObj.searchParams.delete('_gl'); link.href = urlObj.toString(); } }); });
这个方法是在页面加载完成后修改链接,适合临时救急,但不如前两种方法彻底。
备注:内容来源于stack exchange,提问作者Vit Bernatik
相关产品推荐
相关产品推荐

