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里即可

---> http://www.juyimeng.com/wordpress-dynamic-landing-page-dlp.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值