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

作者: ldsea 分类: 碎碎念,程序生活 发布时间: 2011-05-13 17:12

全文转载自:http://wange.im/wordpress-say-hello-to-vistors.html

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 的概念,现在要看这个效果的小盆友们,就要先清除浏览器缓存才行咯。感谢,也欢迎大家提出更多宝贵意见~

发表回复

您的电子邮箱地址不会被公开。