标签归档:dynamic-landing-page

给Landing sites 2.2增加关键字加粗功能

用的上一个landing site的版本是1.3,现在使用的是2.2版。
为了增强改善用户体验,改进了landing site,为dlp功能做了关键字加粗,关键代码如下:

function ls_terms_filter($content){
  // Did we come from a search engine? 
  $referer = ls_get_refer();//取来源域名
  $output = '';
  $delimiter = ls_get_delim($referer);//看是否在list里面
  if($delimiter) 
  {
    $terms = ls_get_terms($delimiter);//取关键字串
  $terms= array_unique(preg_split("/[\s,]+/", $terms));//转换为数组
  $contentarr = preg_split("/(<.*>)/U", $content, -1, PREG_SPLIT_DELIM_CAPTURE); // capture the tags as well as in between
  $stop = count($contentarr);// loop stuff 
  for ($i = 0; $i < $stop; $i++) {
  	$content = $contentarr&#91;$i&#93;; 
  	if ((strlen($content) > 0) && ('<' != $content{0})) { // If it's not a tag
   foreach ($terms as $term) {
   	if (strlen($term)>1)//避免关键字太短的情况
   	$content=eregi_replace("($term)","<b>\\1</b>", $content);
   } 
  	} 
  	$output .= $content; 
  }
   	return $output;
  } else{
  	return $content;
  }
}

增加了上述的function,对内容里面的关键字进行加粗处理
增加了2个filter

add_filter('the_content', 'ls_terms_filter');
add_filter('comment_text', 'ls_terms_filter');

效果请点击下面链接
点击
然后点击本站的链接进来看,搜索的关键字”贝贝 游泳 静观其变”都会做加粗处理。
修改一下上述程序,可以改成整个site的关键字加粗,加链接等效果。
附上修改过的landingsite 2.2的源代码下载。
下载landingsites2.2

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更新