最近有幾個用戶遇到了網址鏈接被刷廣告詞的問題,?? 然后鏈接竟然還被百度收錄了...
比如正常的鏈接應該是:https://www.xintheme.cn ,被刷了廣告詞的鏈接就是:https://www.xintheme.cn?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()
函數終止執行。
新主題官方微信公眾號
掃碼關注新主題(XinTheme)官方公眾號,本站動態早知道。
發布本站最新動態(新主題發布、主題更新)和WordPress相關技術文章。