你的位置:快乐忆站 \ 技术 \ 文章正文

emlog整合谷歌自定义搜索

其实谷歌自定义搜索很久以前就想用了,苦于没时间折腾,也没什么先例。后来看到搜搜用上谷歌的搜索了,很强大,和emlog自带的搜索比起来强大N倍!当然,前提是谷歌收录你~再后来就去折腾别的了,把搜索放一边去了,因为发现站内会用搜索的不多就先放放了。前几天又看到Ray Chow的一篇文章:《WordPress 整合 Google Ajax 搜索》,我仔细研究了一下,貌似可以移植到emlog上,而且还挺简单的。昨天自己摸索了一晚上,边做客服边码代码,在本地测试竟然成功了!那个鸡冻啊~最后整合了下样式表就拿来用了,现在本站的搜索就是谷歌的自定义搜索了,在搜索页面还是ajax搜索的哦~搜索结果直接随输入框动态显示,帅!

总结了一下,然后放出方法来了,适用于emlog用户,wp的童鞋请转向Ray Chow那里。

一、申请 Google 自定义搜索

点击此处创建属于你博客的自定义搜索引擎,要搜索的网站可填入www.example.com/*(www.example.com 为您的网站);在“外观”选项中,选择托管“搜索元素”、“两栏”布局并保存。还有一些其他选项敬请自行设置好,我不一一列举。

二、修改搜索框

你可以利用emlog知道的搜索框进行改造,一般是在侧边栏的。修改成如下形式:

<form id="searchform" action="<?php echo BLOG_URL; ?>search/">
    <input type="text" value="" name="q" id="s" />
    <input type="submit" value="搜一下" id="searchsubmit"/>
</form>

我默认大家是跟我一样的格式,如果不一致,那么请自行修改相关参数!否则可能达不到预期效果!

三、建立搜索结果页

在你博客的根目录新建一个名为search的文件夹,注意search为第二步form的action的路径,请保持一致!然后在此目录下新建一个名为index.php的文件,文件内容如下:

<?php
/**
 * 搜索
 */
require_once '../common.php';
define('TEMPLATE_URL',     TPLS_URL.$nonce_templet.'/');//前台模板URL
define('TEMPLATE_PATH', TPLS_PATH.$nonce_templet.'/');//前台模板路径
$blogtitle = '搜索 '.$_GET['q'];//页面标题,可自行修改,参数'q'文本框input的name一致
include getViews('header');//加载头部文件
include getViews('search');//加载搜索结果页,这个在后面一步讲到
cleanPage(true);//清除注释并完成url优化(伪静态用)
?>

需要注意的地方我都标注了,请注意查看。

新建一个名为search.php的文件,内容有好多,且听我慢慢废话。

<?php if(!defined('EMLOG_ROOT')) {exit('error!');} ?>//下面是自定义搜索的代码,请自行修改成你自己的!
<div id="cse" style="width: 100%;">Loading</div>//id必须注意
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript">
google.load('search', '1', {language : 'zh-CN'});
google.setOnLoadCallback(function() {
    var customSearchControl = new google.search.CustomSearchControl('014039152445023026385:svfhiphjeeq');
    customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
    var options = new google.search.DrawOptions();
    var search = '<?php echo $_GET['q']; ?>';//注意q与上面文本输入框的name属性一致!
    options.setInput(document.getElementById('s')); // 传递输入元素
    document.getElementById('searchform').setAttribute('onSubmit',"document.getElementById('s').select(); return false;"); // 按下搜索按钮选中搜索框,并阻止表单提交
    document.getElementById('s').value = search; // 设置搜索框的内容
    options.setAutoComplete(true);//自动完成,不需要此功能可去除此句,建议留下
    customSearchControl.draw('cse', options);//cse为上面div的id
    customSearchControl.execute(search);
}, true);
</script>
<link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" />
<?php
include getViews('side');//加载边栏
include getViews('footer');//加载底部
?>

将search.php上传到你所用的模板模板,切记不要传到search文件夹下!

至此,你的emlog已经结合了谷歌的自定义搜索了,写得比较急,如有不对,敬请留言指出!具体样式和一些自定义的东西可自行修改,要看效果,敬请使用本站右上角的搜索框!

此方法适用于emlog3.5.X

« 上一篇:迅雷7体验感受
大家的话:
  1. 127#
    晓泽
    2011-01-30 20:28
    本地试了好多次都是错位,还有侧边栏也会自动加载一个
  2. 126#
    gasa insurance
    2010-11-27 22:32
    I am curious just what Rogelio will say with this??

    Jaime
  3. 125#
    枫雪
    2010-11-02 22:42
    现在谷歌收录不错。也顺便把这个功能也解决了....
    小松
    2010-11-02 22:54
    @枫雪:呵呵,现在这个谷歌收录貌似emlog的都很给力~
    枫雪
    2010-11-02 22:56
    @小松:那是谷歌有个管理工具,百度也有,但是内测不给发号。还有你上面代码好像有点不完善,我直接JS代码全部用WP的了..
    小松
    2010-11-02 23:11
    @枫雪:我就是用上面代码的呀,没什么不对呀
  4. 124#
    小松
    2010-09-26 18:46
    @箴言:search文件夹里面只需要一个文件就ok了啊~
  5. 123#
    箴言
    2010-09-26 17:44
    啊啊 啊,本来我想搞的!看了下太烦啦,不搞啦!搞到seach文件夹就不愿意搞啦······
  6. 122#
    ceshi
    2010-09-23 20:37
    回复61楼:
  7. 121#
    小松
    2010-09-19 15:04
    @电脑人生:恩,GG收录很快很快很快的,你基本不用担心~
  8. 120#
    电脑人生
    2010-09-19 14:02
    不过,好像只有搜索到被GG收录的文章吧
  9. 119#
    电脑人生
    2010-09-19 14:02
    哇 我有空也去弄弄
  10. 118#
    小松
    2010-08-20 14:25
    @Ray Chow:原来那个pr3的域名不要了?
  11. 117#
    Ray Chow
    2010-08-20 13:23
    内个……几天没看阅读器的关系,今天才见到这篇
    我换域名啦……
  12. 116#
    小松
    2010-08-19 16:14
    @dengmin:还是站内搜索比较好吧
  13. 115#
    dengmin
    2010-08-19 15:13
    我的搜索页还是定向到google的页面上去 看来也要把它搞成站内搜索了
  14. 114#
    小松
    2010-08-16 11:56
    @Pavel:呵呵,也是,只是em自带的搜索只能搜标题的,所以我就考虑结合谷歌的了
  15. 113#
    Pavel
    2010-08-16 10:54
    等我的文章很多了也用一下谷歌的自定义搜索吧
    wordpress自带的目前还够用
  16. 112#
    小松
    2010-08-15 21:35
    @任侠:呵呵,为以后着想
  17. 111#
    任侠
    2010-08-15 20:33
    恩,折腾的不错,不过没时间去细看这些了,用站内搜索的人确实不多
  18. 110#
    小松
    2010-08-15 20:31
    @木本无心:叫得我DT!
  19. 109#
    小松
    2010-08-15 20:12
    @merror:我看到了,这样也可以实现,只是直接显示在文章页我个人不是很喜欢~
  20. 108#
    小松
    2010-08-15 19:49
    @laowi:呵呵,当然,谷歌的产品很强悍的~
  21. 107#
    木本无心
    2010-08-15 19:29
    松松!
  22. 106#
    merror
    2010-08-15 19:10
    回复48楼小松:你的是新建页面,我直接在文章上面显示结果了~
  23. 105#
    小松
    2010-08-15 18:52
    @可乐:呵呵,但愿对收录有好处,哈哈
  24. 104#
    laowi
    2010-08-15 18:47
    还可以整合到自己博客的搜索框这么高端?
    研究一下
  25. 103#
    小松
    2010-08-15 17:56
    @电脑人生:那是,这比起自带的搜索可强多了...
  26. 102#
    可乐
    2010-08-15 17:51
    我好几个网站都在用 感觉对收录也有好处~
  27. 101#
    电脑人生
    2010-08-15 16:54
    呵呵 这方法好呀
  28. 100#
    小松
    2010-08-15 16:18
    @箴言:那估计是服务器又抽风了...
  29. 99#
    小松
    2010-08-15 16:10
    @箴言:真好,记得每天来哦~
  30. 98#
    小松
    2010-08-15 15:18
    @merror:我也是直接显示的啊~
1 2 3 4 5

随机日志:

推荐日志:

说两句吧:

正在回复: 取消

sitemap