wordpress dynamic landing page(dlp)插件支持baidu及乱码的解决


Landing sites 1.3 是一个wordpress的wordpress dynamic landing(动态登录页)的插件,功能就是如果是从支持的搜索引擎到网站上来,可以在页面上部显示用户从哪里过来的,搜索的关键字是什么,并且,根据关键字搜索本站,显示相关的内容。
安装很简单。下载后放到plugin目录,激活,在想要显示的页面放入正确的代码就可以了。
具体可以参考:http://theundersigned.net/2006/06/landing-sites-11

本站从baidu过来的也有很多用户,这个插件不支持百度,所以需要增加支持百度的功能。
首先打开landingsites13.php
为$search_engines添加一个值,

'baidu.com' => 'wd',

保存重新上传就可以了,测试一下,起作用了。但是显示搜索的代码是乱码
比如搜索

http://www.baidu.com/s?wd=%B1%B4%B1%B4+wordpress&cl=3

到了本网站,显示
您从www.baidu.com来,要找?? wordpress.下面这些内容可能您也感兴趣:

但是从goolge过来就是对的,没有乱码。
经过查看,baidu的keywords,经过编码是:

%B1%B4%B1%B4+wordpress

而google的keywords是

%E8%B4%9D%E8%B4%9D+wordpress

原来这个东西不支持GBK编码,因为google用的是utf-8,所以没有问题。

解决的方法是,判断一下$terms是不是utf-8的,如果不是做一次转换,解决方法

function ls_get_terms($d)
最后的
return $terms;
前面加入

//convert gbk->utf8 if terms is gbk
$encoding_list="EUC-CN, UTF-8";
if (mb_detect_encoding($terms,$encoding_list)!="UTF-8"){
	$terms=iconv(mb_detect_encoding($terms,$encoding_list), "UTF-8", $terms);
}

if (!seems_utf8($terms)){
	$terms=iconv("GBK", "UTF-8", $terms);
}

测试通过,有问题请拍砖。
增加了几个国内搜索网站的支持
‘baidu.com’ => ‘wd’,
‘soso.com’ => ‘w’,
‘sogou.com’ => ‘query’,
‘cha.so.163.com’ => ‘q’,
‘page.so.163.com’ => ‘q’,
‘site.so.163.com’ => ‘q’,
‘news.so.163.com’ => ‘q’,
‘pic.so.163.com’ => ‘q’,
‘search.live.com’ => ‘q’,

添加到$search_engines里即可
—————————
2007-04-23更新


《“wordpress dynamic landing page(dlp)插件支持baidu及乱码的解决”》 有 15 条评论

  1. 我安装了插件,但是总是那个百度来的
    $terms=iconv(“GBK”, “UTF-8”, $terms);
    这个地方报错,是什么原因呢?

  2. […] 另外,当游客从搜索引擎搜索某个关键词到达你的博客时,如果没有发现他们寻找的内容,就会把浏览器窗口关掉。这时我们可以考虑显示一些跟他们搜索相关的文章呢。Landing sites插件可以达到该效果,详细的中文说明点这里。 […]

  3. 是不是只有从搜索引擎过来的时候才会显示这些相关的信息文章 如果是从本站直接点击进去的会不会显示呢,

  4. […] 2007年4月23日更新: 呵呵,TrackBack真的很有用,到我的一个TrackBack的BLOG,我看了下,他又找到了别人的解决百度的编码问题的blog。 作者: Cherami 原载: 百度特立独行? 版权所有。转载时必须以链接形式注明作者和原始出处及本声明。 […]

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据