WordPress 向来自其他域的访客致欢迎词

在 WordPress 上对来自其他域的访客显示欢迎词,这个效果我之前写过一篇类似的,《WordPress 高亮显示关键词及欢迎提示》,之前这一篇是对特定访客显示欢迎词,也就是只对来自搜索引擎的访客显示欢迎提示词,而且对常用的搜索引擎还需要我手工添加进数组,并不是很全面,对百度、Google、有道、必应这些之外的搜索引擎就无效了。而今天介绍的这个方法就很全面,不仅可以涵盖所有的搜索引擎,就连其他任何不加密的网站也都适用!

不信?可以先做个测试。如果我有在贵站留过言,或者你很给面子地给我做了一个友链的小盆友们,你们可以通过自己网站上任何一个可以通向本站的链接访问本站。进来之后,你看到了啥?右侧的那个浮动层瞧见没?就是这个了。再比如说通过我的 Twitter(@wange1228)的主页,上面有我博客的链接,点击进入我的网站后,如下图:

Twitter上的博客链接

从twitter来的欢迎词

现在应该明白我讲的是啥效果了吧,在道明方法之前,首先要感谢 illacrimo-plus 主题的作者,虽然我也不知道是谁。本文的方法就是从这个主题上扒下来的,方法如下:

1、把以下代码复制到 WordPress 主题的 functions.php 中:

function show_refer_in(){
$refer_info=$_SERVER['HTTP_REFERER'];
$ban_list=array($_SERVER["HTTP_HOST"]);
for($ii=0;$ii<count($ban_list);$ii++){
if(strpos($refer_info,$ban_list[$ii])){
return;
}
}
if($refer_info){
preg_match("/^(http:\/\/)?([^\/]+)/i",
$refer_info, $matches);
$host = $matches[2];
echo "<div id=\"hellobaby\">欢迎来自 ".$host." 的朋友!<br />推荐您 <b><a href=\"http://feed.wange.im\" target=\"_blank\">点击这里</a></b> 订阅我的博客 o(∩_∩)o<div class=\"closebox\"><a href=\"javascript:void(0)\" onclick=\"$('#hellobaby').slideUp('slow');$('.closebox').css('display','none');\" title=\"关闭\">×</a></div></div>";
}
}

2、在主题文件的任何部位调用以下函数,我建议是放在 footer.php 中:

<?php show_refer_in();?>

3、接下来样式部分仅供参考:

#hellobaby {
background:#000000;
border:1px solid #B3B3B3;
color:#FFFFFF;
font-size:14px;
opacity:0.7;
filter:alpha(opacity=70);
padding:10px;
position:absolute;
right:0;
top:250px;
}

基本完成了,本文提到的文法和 WordPress 高亮显示关键词及欢迎提示中的提示词部分有点重复,不过高亮显示关键词还是很有用的,所以两者我都用上了,感觉还不错,你说呢?

Update:经热烈讨论,同学们普遍反映,如果每次跳转过来都会有这个欢迎词,就会显得有些烦人,有些碍眼。感谢小邪,提供了记住 Cookies 的方法,8过很遗憾,居然在我这里测试会报错。所以我用了另一种折衷的办法,加了个判断,对所有留过言的朋友不显示该欢迎词,其实也是借用了 Cookies 的概念,现在要看这个效果的小盆友们,就要先清除浏览器缓存才行咯。感谢,也欢迎大家提出更多宝贵意见~

  1. Pingback: WordPress访客致欢迎词 | 加文博客

  2. Pingback: jQuery下判断dom节点是否存在方法与原理 | 一尧月

  3. Pingback: WordPress 向来自其他域进入的访客致欢迎词 | 漏网小鱼博客

  4. 终于找到了。 看来还是要多用搜索功能才行啊,。

    看到你博客右侧显示。我也一直想弄一个。不过不会弄。。 :neutral:

  5. Pingback: WordPress 向来自其他域的访客致欢迎词并随着屏幕滚动 – 马龙渊'S Blog简单的生活简单的梦想 专注于H3C

  6. 欢迎来自 XX的朋友!推荐您 点击这里订阅我的博客 o(∩_∩)o,中的点击这里这四个字会变成一个白点无法显示是何解?

  7. Pingback: 又小小改了一下下~ | Qinfy

  8. Pingback: WordPress 折腾手记 9 | A.shun Blog

  9. 被我拿去用上了,哈哈,可是有两个弄不明白
    1.那个框框为啥不会滚动,好像贴在主题上一样,
    2.猛击多次那个小叉叉,也关不掉,
    另外,万哥,你这评论分一下页好么,鼠标滚轮想罢工啊

    • 你的两个问题都需要JS配合,没有在本文的描述之列
      评论分页嘛。。。。。。这样可以显的多一点,哈哈哈哈

  10. 上次等万戈大湿来检查工作 不知道有没有发现问题啊
    我就是按照这个教程弄的 只不过改了css里的top:250px;而已 现在发现滚动的时候那个欢迎词不跟着屏幕滚动啊 纠结了

  11. 第二步 放在footer里面代码的详细摆放不清楚
    我是

    #hellobaby {
    background:#000000;
    border:1px solid #B3B3B3;
    color:#FFFFFF;
    font-size:14px;
    opacity:0.7;
    filter:alpha(opacity=70);
    padding:10px;
    position:absolute;
    right:0;
    top:250px;
    }
    这样的, 可是页面就直接显示代码了, 试了很多位置都是直接显示出来,具体该放哪里?

  12. Pingback: 给博客添加上从其他网站访问本站的提示框 | 囧啊囧(vv15.com)

  13. 你的博客开启缓存功能就失效了,比如说现在的~~
    我一直都在奇怪为啥你的显示来路不正确,今天查看了你的源文件才发现是开启缓存的问题~~
    请问能做个PHP判断,然后JS输出的不,那样的话应该就解决了这个问题

  14. 终于挖到这方法了,刚接触WP的时候就试了一段时间illacrimo-plus,很喜欢这个功能,但不知道在哪里去找...

  15. :mad: 刚才的评论竟然要审核,肯定是你的名字链接导致的!强烈抗议!我就叫你名字几下就给审核了,我以后不叫万啊戈了,就叫你啊,不好意思,我今天特别无聊特来你水库注水 :twisted:

  16. 这个,那个,想说的是你这个半圆角方框转播的到处都是,走到哪里都能遇到“学万戈的半圆角”,相当厉害,很多你的粉丝到我那指指点点:这个跟万戈很像,那个代码是不是学万戈的,殊不知WP就是那么回事,共享导致很多相像,很正常,哈哈哈。

    说那么多其实一句话:万戈已经成为粉丝心中的标准!强! :roll:

    • 有同学反映说每次都看到提示太烦了,我就加了个限制,没有留过言的朋友才可以看到,你要清除浏览器缓存之后才可以看到了

  17. 每个cookie包含一个名称和一个值(内容)。。
    welcometip是小邪随手设置的名称,表示欢迎词框的意思 ~
    你可以按照自己喜欢的来 ~
    然后内容小邪随手写了一个done作为值 ~
    其实这次我们要做的并不需要特定的内容 ~
    意思一下而已 ╮( ̄▽ ̄)╭ ~
    --------------
    每次运行这个函数,都会在该用户的浏览器里面生成一个cookie ~
    这个cookie在86400,即24小时之后就会消失 ~
    你可以自己设定消失时间,改数字即可 ~
    然后函数会检测是否存在这个cookie ~
    如果存在,则表示已经运行过这个函数鸟 ~
    就不运行了 ~
    如果不存在,则继续运行 ~
    -----------------------
    $_COOKIE["welcometip"]变量表示cookie的值 ~
    isset是用来确定某个变量存不存在的函数 ~
    time()则是当然的时间戳 ~
    我想小张的服务器,time()生成的应该是北京时间的时间戳 ~
    所以你基本上不需要担心cookie存在时间发生误差的问题 ~
    然后当前时间戳+需要存在的秒数,填在setcookie函数的第三个参数处 ~
    时间戳即从1970年1月1日到今天为止的秒数总和 ~
    setcookie的三个参数的值分别是cookie名称,cookie值,cookie消失的时间 ~
    ---------------------
    ╮( ̄▽ ̄)╭,有问题请继续折腾小邪 ~
    今天皮痒 ~ :idea: :idea: :idea:

  18. 這個效果我也曾經在 Philna 主題裏看過,該主題似乎也是要自己加入數組,不過當時我很喜歡這樣的效果,也覺得對訪客體驗來說是很好的效果,現在萬戈這樣的方法更加全面性了,贊聲好!