网站优化

网站优化

Products

当前位置:首页 > 网站优化 >

wordpress站内搜索更改为百度搜索

GG网络技术分享 2025-03-18 16:12 4


由于wordpress自带站内搜索的低效率,很多人选择百度站内搜索来代替wordpress自带的搜索,节约资源有提高了效率。

方法一:

wordpress站内搜索更改为百度搜索的方法比较简单,只需要下列代码即可,打开当前主题下的functions.php加入下面代码。

//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);

// 不再继续

exit;

}

// 加入 替换处理

add_action('parse_query', 'wp_use_baidu_search');

方法二:

1.新建一个空白htm页面,上传到wordpress根目录。实例代码如下:

<!DOCTYPE html>

<html lang="zh-CN">

<head>

<meta charset="UTF-8" />

<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />

<meta http-equiv="Cache-Control" content="no-transform" />

<meta http-equiv="Cache-Control" content="no-siteapp" />

<title>站内搜索结果 第1页</title>

<link rel="stylesheet" id="begin-style-css" href="//mr-z.me/wp-content/themes/Begin/style.css?ver=4.6" type="text/css" media="all" />

<script type="text/javascript" src="//mr-z.me/wp-content/themes/Begin/js/jquery.min.js?ver=1.10.1"></script>

</head>

<body class="search search-results">

<div id="page" class="hfeed site">

<nav class="breadcrumb">找到 <span class="resultCount"> </span> 个与 <span class="searchKeyword"> </span> 相关的文章 </nav>

<div id="content" class="site-content">

<section id="primary" class="content-area">

<main id="main" class="site-main" role="main">

<ul class="search-page">

搜索结果加载中。。。

</ul>

<ul class="page-nav">

</ul>

</main>

</section>

</div>

<script type="text/javascript">

function getQueryString(name) {

var result = window.location.search.match(new RegExp("[\?\&]" + name + "=([^\&]+)", "i"));

if (result == null || result.length < 1) {

return "";

}

return result[1];

}

kw = decodeURIComponent(getQueryString('s'));

page = getQueryString('page');

pn = (getQueryString('pn') == '') ? 10 : getQueryString('pn');

document.title = kw + document.title;

var totalPages;

function displaySearchInfo(info){

$('.resultCount').html(info['totalNum']);

totalPages = Math.ceil(info['totalNum'] / pn); //总页数

//生成分页管理

for(var k = 1; k < totalPages +1; k++){

$('.page-nav').append('<li class="page-num"><a href="#page'+k+'">'+ k +'</a></li>');

}

$('.page-num:first').addClass('current');

$('.page-num').click(function(){

page = $(this).find('a').html() ;

$('.search-page').empty().html('搜索结果加载中。。。');

$('.current').removeClass('current');

$(this).addClass('current');

document.title = document.title.replace(/第[1-9]\d*页/,'第'+page+'页');

init ();

})

}

function display (result) {

$('.search-page').empty();

for (var k = 0; k < result.length; k++){

$('.search-page').append('<li class="entry-title"><a rel="bookmark"></a><span class="search-inf"></span></li>');

$('.entry-title:last').find('a').html(result[k]['title'].replace('| 我系张先森','')).attr({href:result[k]['linkUrl'], target:'_blank', title: result[k]['abstract'] });

$('.search-inf:last').html(result[k]['dispTime']);

$('.searchKeyword').html(kw);

}

if(typeof(totalPages) == 'undefined'){

cse.getSearchInfo(kw, displaySearchInfo);

}

}

function init() {

cse = new BCse.Search("4624622582968206438"); //参数为您的 API引擎 ID,必需。

cse.setPageNum(pn); //设定每页的条数,最多10

cse.openTimeOrder(); //打开时间排序

cse.getResult(kw, display,page); //kw搜索关键词,display回调函数,page为搜索结果的某一页

}

function loadScript () {

var script = document.createElement("script");

script.type = "text/javascript";

script.charset = "utf-8";

script.src = "http://zhannei.baidu.com/api/customsearch/apiaccept?sid=4624622582968206438&v=2.0&callback=init"; //sid为站内搜索id

var s = document.getElementsByTagName('script')[0];

s.parentNode.insertBefore(script, s);

}

loadScript();

</script>

</div>

<style>

.search-page{

padding: 0 20px;

}

.page-nav{

display: flex;

align-items: center;

justify-content: center;

}

.page-num{

float: left;

width: 30px;

margin: 0 10px;

font-size: 16px;

cursor: pointer;

background: white;

border: 1px solid #ddd;

}

.page-num :hover{

background: #3690cf;

color: #fff;

border: 1px solid #3690cf;

}

.current{

background: #3690cf;

color: #fff;

border: 1px solid #3690cf;

}

.current a{

color: #fff;

}

.page-num a{

text-decoration: none;

display: block;

margin: auto;

text-align: center;

}

</style>

</body>

</html>

样式及内容可根据自己网站需要修改。

2.在主题的functions.php文件中加入以下代码,修改搜索表单的action地址到第一步中新建的search.htm文件。

add_filter('get_search_form','customSearch');

function customSearch($searchForm){?>

<script>

jQuery(document).ready(function(){

jQuery('.search-form').attr("action","<?php echo home_url('/search.htm');?>");

});

</script>

<?php

return $searchForm;

}

完成以上两步骤就完成了一个简单的百度站内搜索的页面,相对于其他方式有以下优点:

  • 代码简单,search.htm无任何服务端代码,不对服务器造成压力。
  • 代码修改量小,只需要在functions.php增加一个filter钩子。
  • 搜索结果页面高度自定义,可增加广告代码等。

标签:

提交需求或反馈

Demand feedback