inove主题的搜索功能着实有点差,为此,inove支持自定义搜索功能,我们利用google自定义搜索来加强inove主题的搜索功能来增加用户体验。下面详细介绍一下如何为inove主题添加Google自定义搜索功能
1、登陆到Google自定义搜索,创建你的自定义搜索。(此处略去x百字)
2、创建一个搜索结果模板。把下面代码保存为cse.php,上传至iNove主题的文件夹。(cse意为custom search engine,你可以换成其他)
/*
Template Name: cse
*/
?><?php get_header(); ?>
<div id="cse-search-results"></div>
<script type="text/javascript">
var googleSearchIframeName = "cse-search-results";
var googleSearchFormName = "cse-search-box";
var googleSearchFrameWidth =600;
var googleSearchDomain = "www.google.com";
var googleSearchPath = "/cse";
</script>
<script type="text/javascript" src="http://www.google.com/afsonline/show_afs_search.js"></script>
<?php get_footer(); ?>
var googleSearchFrameWidth =605为搜索结果页面的宽度,iNove默认的宽度是605。
3、在WordPress中创建一个页面,比如我的,地址为http://www.whisperer.name/cse,标题为Search Result,模板选择刚刚创建的cse。
然后在导航栏隐藏这个页面,在iNove的文件夹找到templates/header.php,找到下面一行:
改成,
其中exclude=41意思是在导航栏隐藏这个cse页面,41是这个页面的ID,在/wp-admin/edit-pages.php页面,鼠标悬浮在页面的标题上,在下面状态栏就可以看到post=41。
4、定义搜索框。仍然是templates/header.php,找到下面代码:
<div class="content">
<input type="text" class="textfield" name="q" size="24" />
<input type="submit" class="button" name="sa" value="" />
<input type="hidden" name="cx" value="<?php echo $options['google_cse_cx']; ?>" />
<input type="hidden" name="ie" value="UTF-8" />
</div>
</form>
改成,
<div class="content">
<input type="hidden" name="cx" value="<?php echo $options['google_cse_cx']; ?>" />
<input type="hidden" name="cof" value="FORID:11" />
<input type="hidden" name="ie" value="UTF-8" />
<input type="text" class="textfield" id="searchtxt" name="q" size="24" />
<input type="submit" class="button" id="searchbtn" name="sa" value="" />
</div>
</form>
其中第一行的< ?php bloginfo('wpurl') ?>/cse是刚刚你创建的搜索结果页面的地址。
5、在iNove的主题选项中,勾选使用Google自定义引擎,填上你的CX值。
这样,所有的工作都做完了。你可以随时在WordPress默认搜索和Google自定义搜索之间进行切换。并且不需要再另外用css定义搜索框了,已经沿用原来的搜索框样式了。
PS:这个是可以在后台切换两种搜索模式,应该可以在搜索框旁边定义一个按钮,让访客可以自行选择。刚入WP的时候在某个博客上看到过,谁知道怎么定义的话不妨共享出来。