最近有几个用户遇到了网址链接被刷广告词或擦边词的问题,然后链接竟然还被百度收录了… 比如正常的链接应该是:https://www.yourdomain.com
,被刷了广告词的链接就是:https://www.yourdomain.com?ad=违规词违规词违规词违规词违规词违规词
。 如果刚好这样的链接被收录了,那么当访客从搜索引擎通过这个链接进入你网站的时候,浏览器中的网址栏就会出现这样的违规词,用户体验很差,访客有被误导的风险,存在重复页面对网站SEO优化也非常不好。
因此,移除这些查询参数也是优化WordPress网站的一个重要步骤,下面直接上代码,添加到当前使用的WordPress主题的functions.php
中。
//移除网址链接中的参数,避免被刷广告
function dhz_remove_query_strings() {
//跳过后台和搜索页面
if (is_admin() || is_search()) {
return;
}
if (strpos($_SERVER['REQUEST_URI'], '?') !== false) {
//获取当前链接
$current_url = home_url(add_query_arg(array()));
//301重定向至不带参数的链接
wp_redirect(strtok($current_url, '?'), 301);
exit();
}
}
add_action('template_redirect', 'dhz_remove_query_strings');
这段代码的作用是在WordPress的template_redirect
钩子上运行一个回调函数,用于移除当前页面的所有查询参数并将用户重定向到没有查询参数的新URL。
具体来说,该函数执行以下操作:
- 检查当前页面是否是后台页面或搜索页面。如果是,则不进行任何操作,直接返回。
- 检查当前URL是否包含查询参数。如果没有,则不进行任何操作,直接返回。
- 如果当前URL包含查询参数,则使用home_url()函数获取当前站点的主页URL,并使用add_query_arg()函数获取当前页面的完整URL。
- 使用strtok()函数将所有查询参数从当前URL中删除,并使用wp_redirect()函数将链接301重定向到新的没有任何查询参数的URL,最后使用exit()函数终止执行。
除此之外你也可以使用这个插件解决违规词与广告词被刷问题《wordpress搜索被刷违规及擦边词解决办法》