wordpress站內搜索跳轉到百度搜索,搜索中文文字被轉義亂碼的解決方法
最近,白石頭博客被刷了一些亂七八糟的詞,并且被百度收錄了,如下圖,以前收錄幾千個頁面,被刷后,現(xiàn)在收錄9萬多個頁面,嚴重影響了本站的用戶體驗。
這樣雖然我的網站沒有這個內容,但訪問過來都會有下面顯示:
最開始我想通過301重定向所有訪問地址里面有/?=的來源搜索自動轉向網站首頁,這樣就不會看到這種情況,在寶塔面板試了好久,沒有成功。只能通過修改文件實現(xiàn)了這個方法,在當前主題文件夾里面的functions.php加入下面代碼,然后保存。
/* WordPress搜索結果中無內容時自動跳轉到網站首頁 */
add_action('template_redirect', 'redirect_single_post');
function redirect_single_post() {
if (is_search()) {
global $wp_query;
if ($wp_query->post_count == 0 && $wp_query->max_num_pages == 0) {
wp_redirect( home_url() );
exit;
}
}
}
這樣,別人點擊這樣的垃圾鏈接的話,就直接跳轉到本站首頁了,如果是搜索正常關鍵字,則顯示正常搜索頁。
還有這下面這種方法,無論有沒有搜索結果都自動跳轉到首頁(此方法沒測試過)
//禁用WordPress前臺搜索功能
function disable_search( $query, $error = true ) {
if (is_search() && !is_admin()) {
$query->is_search = false;
$query->query_vars['s'] = false;
$query->query['s'] = false;
if ( $error == true )
// 執(zhí)行搜索后顯示的錯誤頁面
$query->is_home = true; //跳轉到首頁
// $query->is_404 = true;//跳轉到404頁
}
}
add_action( 'parse_query', 'disable_search' );
add_filter( 'get_search_form', create_function( '$a', "return null;" ) );
第三種方法就是把wordpress站內搜索直接替換成百度搜索。
代碼:
//wordpress站內搜索替換為百度搜索
function wp_use_baidu_search( $wp_query ) {
$s = '';
if (isset($wp_query->query_vars['s'])) {
$s = trim($wp_query->query_vars['s']);
}
if (!$s) { // 空搜索 不進行跳轉
return;
}
// 獲取當前網站域名
$host = strtolower($_SERVER['HTTP_HOST']);
// 使用 baidu
$search_engine = 'https://www.baidu.com/s?ie=UTF-8&wd=';
$query = urlencode($s . ' site:' . $host);
// 進行跳 轉
wp_redirect($search_engine . $query);
// 不再繼續(xù)
exit;
}
// 加入 替換處理
add_action('parse_query', 'wp_use_baidu_search');
效果如下:
別人點擊收錄的垃圾鏈接就是這樣的。
最開始測試時,搜索英文或者數(shù)字的話,搜索結果是正常的,但搜索中文的話,在百度搜索的中文被轉義了,也就是顯示亂碼。如下圖
找到好久,才找到解決的方法,找到search的相關代碼(一般在header.php),把里面的
<?php echo home_url('/search/'); ?>
修改為:
<?php echo home_url('/?s='); ?>
如果搜索結果前面多個/的話,直接把上面的/去掉就行了。
參考文章:
聲明:
1.本站主要是為了記錄工作、學習中遇到的問題,可能由于本人技術有限,內容難免有紕漏,一切內容僅供參考。
2.本站部分內容來源互聯(lián)網,如果有圖片或者內容侵犯您的權益請聯(lián)系我們刪除!
3.本站所有原創(chuàng)作品,包括文字、資料、圖片、網頁格式,轉載時請標注作者與來源。
1.本站主要是為了記錄工作、學習中遇到的問題,可能由于本人技術有限,內容難免有紕漏,一切內容僅供參考。
2.本站部分內容來源互聯(lián)網,如果有圖片或者內容侵犯您的權益請聯(lián)系我們刪除!
3.本站所有原創(chuàng)作品,包括文字、資料、圖片、網頁格式,轉載時請標注作者與來源。
THE END