百度站内搜索完美替换discuz的默认搜索教程

众所周知使用百度站内搜索有利于网站的权重,而且可以降低服务器资源,像某些大型的论坛他的自带搜索就加了权限的一般权限的的他都不给你使用搜索功能。现在网上有很多教程和插件,特别是插件都卖到两三百了!其实用百度站内搜索替换DZ默认搜索难么?我可以明确的告诉你不难,只要把我们在百度得到的代码添加到我们搜索代码里就行了。接下来我详细教大家如何替换。

使用百度站内搜索功能前提是你必须先有:百度提供给你站的搜索引擎ID,如果没有,请不要随便更改了,有可能造成无法使用的状态。成功替换后的演示网址:www.zhanad.com 二级搜索域名:baidu.zhanad.com

操作步骤:
备份模板common目录下的pubsearchform.htm 然后打开此文件做如下修改:

13行:

  1. <form id=”scbar_form” method=”{if $_G[fid] && !empty($searchparams[url])}get{else}post{/if}” autocomplete=”off” onsubmit=”searchFocus($(‘scbar_txt’))” action=”{if $_G[fid] && !empty($searchparams[url])}$searchparams[url]{else}search.php?searchsubmit=yes{/if}” target=”_blank”>

修改为

  1. <form id=”scbar_form” method=”get” autocomplete=”off” onsubmit=”searchFocus($(‘scbar_txt’))” action=”http://baidu.zhanad.com(替换成你的自定义站内搜索链接)/cse/search” target=”_blank”>

下面新增两行

  1. <input type=”hidden” name=”s” value=”你的百度站内搜索ID(一串数字)”>
  2. <input type=”hidden” name=”ie” value=”{CHARSET}”>

删除第26行这行代码

  1. <input type=”hidden” name=”q” id=”cloudsearchquery” value=”” />

第44行

  1. <td class=”scbar_txt_td”><input type=”text” name=”srchtxt” id=”scbar_txt” value=”{lang enter_content}” autocomplete=”off” x-webkit-speech speech /></td>

修改为:

  1. <td class=”scbar_txt_td”><input type=”text” name=”q” id=”scbar_txt” value=”{lang enter_content}” autocomplete=”off” x-webkit-speech speech /></td>

dz后台-工具-更新缓存!然后应该就ok啦!

以上只是实现了此功能,可以说是能用了,但是会提交很多多余的参数,而且帖子用户什么的下拉选项无效了。如果你想完美点,请继续以下操作:从第14行删到40行(之前删过一个26行了)

  1. <input type=”hidden” name=”mod” id=”scbar_mod” value=”search” />
  2.                 <input type=”hidden” name=”formhash” value=”{FORMHASH}” />
  3.                 <input type=”hidden” name=”srchtype” value=”title” />
  4.                 <input type=”hidden” name=”srhfid” value=”$_G[fid]” />
  5.                 <input type=”hidden” name=”srhlocality” value=”$_G[‘basescript’]::{CURMODULE}” />
  6.                 <!–{if !empty($searchparams[params])}–>
  7.                         <!–{loop $searchparams[params] $key $value}–>
  8.                         <!–{eval $srchotquery .= ‘&’ . $key . ‘=’ . rawurlencode($value);}–>
  9.                         <input type=”hidden” name=”$key” value=”$value” />
  10.                         <!–{/loop}–>
  11.                         <input type=”hidden” name=”source” value=”discuz” />
  12.                         <input type=”hidden” name=”fId” id=”srchFId” value=”$_G[fid]” />
  13.                         <input type=”hidden” name=”q” id=”cloudsearchquery” value=”” />
  14.                         <style>
  15.                         #scbar { overflow: visible; position: relative; }
  16.                         #sg{ background: #FFF; width:456px; border: 1px solid #B2C7DA; }
  17.                         .scbar_narrow #sg { width: 316px; }
  18.                         #sg li { padding:0 8px; line-height:30px; font-size:14px; }
  19.                         #sg li span { color:#999; }
  20.                         .sml { background:#FFF; cursor:default; }
  21.                         .smo { background:#E5EDF2; cursor:default; }
  22.             </style>
  23.             <div style=”display: none; position: absolute; top:37px; left:44px;” id=”sg”>
  24.                 <div id=”st_box” cellpadding=”2″ cellspacing=”0″></div>
  25.             </div>
  26.                 <!–{/if}–>

然后删除第45行

  1. <td class=”scbar_type_td”><a href=”javascript:;” id=”scbar_type” class=”xg1″ onclick=”showMenu(this.id)” hidefocus=”true”>{lang search}</a></td>

然后应该就彻底OK了吧!最后还是再次多谢原作者@小柒discuz的大方无私的知识奉献!

评论已关闭