最近更换主题时没有做搜索模块,首先是闲麻烦,再则Wordpress内置的搜索功能仅算一般,索性也不做搜索框了,然而有时候要找以前的存档又不方便,看到ThinkAgain博客上的Google Ajax Search功能强大,速度贼快,自己也搞了一个,期间也算历经千辛万苦,终于搞定了,先贴结果图。
先介绍一下Google Ajax Search,这是Google面向小型网站、博客推出的搜索服务,它在你的网站上内置搜索框,用AJAX方式调用结果显示在你的网站上,此过程不用访问Google的网页,增快了搜索的速度,提供更好的访客体验。
现在开始说一下如何使用吧。首先要注册一个Google Ajax Search的KEY,挺容易的,输入你的网址,如http://photozero.net ,打个勾赞成服务条款就会得到一个KEY,这个KEY只能用于这个域名下的网页调用。
接下来是把一个Javascript文件嵌入你的博客中。在博客后台打开“主题”-》“编辑主题”,找到“header.php” 这个文件编辑。把类似于
- <script src="http://www.google.com/jsapi?key=ABQIAAAAxbEbYoIMv2ddhn6TUcYTwhRLVF4ECcLU8-XSpyOqP4CBr2JuVBTOm1FzKI3-GU5dOFYWlWLxpqdlzA" type="text/javascript"></script>
的代码放在
- <head>
- ..
- </head>
之间。
这是第一步,在你的博客里面引用Google的AJAX搜索的文件。如果担心载入速度受到影响,可以把这个JS文件放在最后载入也是没有问题的。
第二步;在合适的位置放置搜索结果的标记。当用户进行搜索后,这个结果显示在你的博客的某个位置。我的建议是放置在Header之后,博客文章开始之前。我在要放的结果放一个
- <div id="googlesearchresult"></div><!--表示结果在这里显示-->
第三步,在合适的位置放置搜索框,如我的是在侧边栏,编辑“sidebar.php” ,在合适的位置放上标记:
- <div id="googlesearchcontrol"></div><!--表示搜索框在这里显示-->
第四步,也是最重要的一步,对搜索进行配置。Google Ajax Search(文档)提供了包括网页搜索、博客搜索、视频搜索、图片搜索等多项搜索服务,还可以限定结果网站(如 photozero.net ,限定在 photozero.net 里面搜索结果),相当于“站内搜索”。这一步也是比较麻烦的,如果懂得JavaScript还好说,不懂得就照例画葫芦。下面是示范代码。这是一个类似于标签式的排列方式,另一种是由上至下的排列,比较难看了点。
- <script language="Javascript" type="text/javascript">//<![CDATA[
- google.load('search', '1.0');//载入Google Ajax Search
- function OnLoad() {
- // create a tabbed mode search control
- var tabbed = new google.search.SearchControl();//创建一个控制器
- var siteSearch = new google.search.WebSearch();//实例化一个搜索器
- siteSearch.setSiteRestriction("photozero.net");//限定搜索范围,相当于站内搜索了
- siteSearch.setUserDefinedLabel("Photozero站内搜索");//该搜索条显示的名称
- tabbed.addSearcher(siteSearch);//将站内搜索添加到搜索器中
- tabbed.addSearcher(new google.search.WebSearch());//添加Web搜索
- tabbed.addSearcher(new google.search.BlogSearch());//添加博客搜索
- tabbed.addSearcher(new google.search.NewsSearch());//添加新闻搜索
- tabbed.addSearcher(new google.search.ImageSearch());//添加图片搜索
- tabbed.addSearcher(new google.search.VideoSearch());//添加视频搜索
- // draw in tabbed layout mode
- var drawOptions = new google.search.DrawOptions();//设置搜索选项
- drawOptions.setDrawMode(google.search.SearchControl.DRAW_MODE_TABBED);//以标签栏显示
- drawOptions.setSearchFormRoot(document.getElementById("googlesearchcontrol"));//放置搜索框的位置,如果应用在博客以外的某些网页,搜索框要和搜索结果显示在一起,就不用这句。
- tabbed.setResultSetSize(google.search.Search.LARGE_RESULTSET);//设置搜索结果显示大小,有大(显示8条)和小(显示4条)之分
- tabbed.draw(document.getElementById("googlesearchresult"), drawOptions);//设置搜索结果和选项
- //tabbed.execute("neekey");//如果要在载入时就进行搜索请添上这句
- }
- google.setOnLoadCallback(OnLoad, true);
- OnLoad();//启用代码
- //]]>
- </script>
好了,把上面的代码放入网页的任意位置,就可以看到像我的博客一样的效果了。此外,还有人为这个写了插件,好像就叫Google Ajax Search,但似乎很久没更新了,我也没去试用,如果贪图方便的朋友请上官方插件目录搜索一下。


好想有你的技术.
可惜有心无力.
没钱去学校啊.
北大青鸟..4W一年…
自学,你看无论是哪个坛子里的高手,哪个是去什么学校学的?
自学?.真的这么简单吗?.
好吧..neekey 哥哥.
我相信你.
其实我自学过.但是又放弃了.
因为总觉得自学会浪费我的时间而最终得到的结果不会好.
但是我相信neekey哥哥.
哥哥… 哥哥…
我恐怕比你小..
好吧,我先说..我 19..
你别说.别说..
说出来我没面子.
你后台看下我的EMAIL.回复我算了
我发现你永久链接很有趣.
怎么是_不是-
以前习惯了
这个比我用的google基本搜索好多了,那个不能自定义
最好的还是可以在自己的网站上调用,这点比较方便
自定义Google搜索就很多..利用Google Ajax Search就少之又少啊..有空去搞搞
这效果不错的,你可以在我的博客上试试
一看到要调整位置,就有点晕菜了……
其实永久链接还是“-”比“_”好,蜘蛛会把-识别为空格,而_不会被识别,所以google_ajax_search_tutorial 实际上被识别为googleajaxsearchtutorial
的确,我上回看到Google的专家说过这个问题,不过我一直更习惯用下划线,所以一时改不过来呵呵
google搜索快
我也喜欢
@Dianso 难得一见,基本上没见你更新。
少用这些插件为好,我是简约至上主义
-是可以自己生成的, _可都要自己打啊…
这样做有个最大的好处就减轻数据库查询的负担~~
对了~今天看邮箱发现贵站发了许多垃圾邮件给我,都自动加入黑名单了哦~
汗。是什么邮件发到你的邮箱去了?你的邮箱是什么的?我觉得Gmail不错,垃圾过滤的相当牛B,它似乎不是靠发送邮件服务器来判断的,而是根据内容判断的
你的代码显示插件是”CoolCode”吗?
为什么我不能在2.6使用?
是的。
你要在HTML编辑模式下,输入
[左尖括号]coolcode[右尖括号]
代码…
[左尖括号]/coolcode[右尖括号]
才行,请先仔细看看官方的说明书
hoho,谢谢分享喔。
你是搞设计的吧,网站做得太炫了
你的search效果很好
喜欢的话就按照这个说明自己做一个,如果我的代码不够清楚,请查看我的源文件。
恩,我会用的.
提个建议:
1 把搜索结果放到一个很淡(视觉上)的框架里,能起到突出内容的效果,这个应该是在自己的css中改吧.
2 然后把那个关闭搜索结果的X放到搜索结果div右上方,这样关起来比较方便,不然非专业用户体验起来不是很好哦
很好的建议,有空改改
Pingback 引用通告: Recent Faves Tagged With "imagesearch" : MyNetFaves
这个东西!!很好,比水煮鱼的那种方法好的多。
我先看看,等下再整
有个小问题 怎么设置搜索结果的长度?
额额 应该说是宽度
这个正是我准备下一篇教程中说的,简单说:
比如我是把搜索框和搜索结果分开来。
你看我博客的源代码,有两个DIV,
一个ID为searchform-wrap,即搜索框
一个ID为googlesearchresult 即结果框
你再用Firebug调试,发现包围搜索结果的是一个class=gsc-control,
并且Google默认定义了gsc-control宽度为300px;
现在要改为500来说,加入以下CSS代码
#googlesearchresult .gsc-control{width:500px;}
因为用ID比CLASS更优先,所以这样500px就冲掉了300px;
同样的方法,我把Powered by Google的图标隐藏起来以配合主题
#searchform-wrap .gsc-branding{display:none;}
更多我的修改,你可以看我的主题的CSS文件,搜索 /* Google Ajax Search */
部分
OK!
那我搜搜看
嗯嗯 成功了
恭喜!我在Firefox下看你的搜索框略有问题,宽度是 99%吧?把旁边的都挤了。。
学习了,打算捣鼓下···我一直用的是自定义搜索