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='); ?>

如果搜索結果前面多個/的話,直接把上面的/去掉就行了。

 

參考文章:

WordPress搜索結果中只有一篇文章時自動打開該文章

wordpress站內搜索更改為百度搜索

THE END
亚洲中文色欧另类欧美,久久久久久久激情,亚洲 日韩 欧美 另类 国产,中文字幕高清无码男人的天堂 www.sucaiwu.net