只给新访客显示广告的php代码

by muzik on 2009-09-20

在落伍者论坛看到一篇帖子,说“回头客多了 反而不赚钱了”。正验证了此前的建议可能是有意义的:只给通过搜索引擎进入网站的访客展示Adsense广告

事实上自去年在一个老外blog上(具体地址忘了)看到有人这么提出之后,我就一直在这么实行。具体的方法就是先检测referer,判断用户来路并设置cookie。以此作为是否显示广告的依据。

先检测用户来路


check_referer();
function check_referer() {
   global $isfromsearch;
   $ref  = $_SERVER['HTTP_REFERER'];
   $se   = array('/search?', 'images.google.', 'search.','soso.com','baidu.com', '/search/', '.yahoo.');
   //此处可自行添加识别其它搜索引擎的字串
   foreach ($se as $str) {
     if (strpos($ref,$str)!==false) {
      setcookie("isfromsearch", 1, time()+3600, "/");
      $isfromsearch=true;
      break;
     }
   }
}

 

显示广告之前检测是否来自搜索引擎


if(is_from_search()){
  //显示广告代码
}
function is_from_search(){
  global $isfromsearch;
  if ($isfromsearch==true || $_COOKIE["isfromsearch"]==1) {
   return true;
  }
  return false;
}

 

wordpress里的改动

以上方法需要在使用is_from_search()之前先调用check_referer()。在wordpress里,我们可以在当前主题目录下functions.php里添加一行代码来完成这一过程:


 add_action('template_redirect','check_referer');

 

当然,也可以新建一个插件来专门做这事儿。

Related posts:

  1. JavaScript in_array function jQuery有个inArray( value, array ),返回的是key,如果没找到,则返回-1。 用的时候老混淆,所以写一个可以和php里in_array一样用法的。    function in_array(v,a){     ...
  2. Hello world! h3. Textile Plugin # Welcome to WordPress. # This is...
  3. 为WordPress里的中文文章自动截取摘要 一般而言,文章列表页有三种形式: 只显示文章标题; 显示文章标题及正文摘要; 显示文章标题及正文全。 以个人浏览体验而言,我最喜欢显示摘要的网站。只显示文章标题的做法,浏览十分便捷,但是经常有标题党潜伏。显示全文的做法呢,一个列表页被拉的有万里长城那么长,找各篇文章的标题都要找半天。 此外,从SEO的角度,列表里显示全文也很容易坠入Duplicate content的陷阱。在WordPress里,一篇文章除了独立显示的页面之外,还会被显示在首页、存档页、分类页和标签页内,在这些列表页只显示摘要可以大大减少被google判断为重复内容的可能。 wordpress在显示文章内容的时候,本身就有the_content()和the_excerpt()两种方法。全者用于显示全文,后者用于显示概要。概要可以单独撰写,如果为空则截取正文替代。在英文blog里,使用the_excerpt()输出的效果相当不错,他会调用wp_trim_excerpt()来截取正文开头的55个词,作为摘要。它利用的是英文单词之间以空格分割的特性,以空格为分隔符来截取字串。但中文段落里,字词之间却并不使用空格分割,这样自动截取出来的摘要,往往就是正文全文。 针对中文文章自动截取摘要的解决方案 移除默认的wp_trim_excerpt,另行处理摘要。考虑到中文的特性,可以采用’。’为分割符来截取,每篇文章截取开头数句作为摘要。...
  4. CakePHP 实例教程: Categories Acts as Tree Tree是CakePHP 1.2的核心Behaviors之一,可以用来轻易的实现无限极分类,并呈现树状列表。 图片来源:Tree traversa,WIKIPEDIA 基础实例 建立数据表 CREATE TABLE `categories` (...
  5. WordPress机能备忘 每次写点小插件都会想不起那些繁杂的filters到底叫些什么,此帖用于不定期记录以备忘。 添加URL重写规则 经常性需求。比如需要添加一个/submit而又不想新建页面,又或想增强文章列表以使得其能按某几种特定规则排序。添加Rewrite规则可以有两种形式: 在后台设置固定链接的过程中添加。此种方式通过一次设置把处理过的新规则写入数据库。 在每个访问请求时添加,好处是写代码时便于测试。 前一种在一些常用插件中会有存在。后一种比较少见,牵涉到的filter是transient_rewrite_rules,变量$rules。相关的文件及函数列表: /wp-includes/rewrite.php,WP_Rewrite::wp_rewrite_rules() /wp-includes/functions.php,get_transient() 以上filter在2.9.2版中已移除。 添加Query...

Leave a Comment

Previous post:

Next post: