wordpress博客添加欢迎语句
在去访问一些博友的站点时,发现有的站点会提示欢迎访问的语句,比如,欢迎光临夏日博客回来,这样的功能可以增加用户的体验度,研究了一下,原来是获取的 Cookie 的数据并显示出来的功能,当我们在预览博客的时候,会产生一个 comment_author_xxx 的 cookies,所以只要我们检测这个 cookies 是否存在就可以了,这种方法针对的是在本站注册的会员,先看一下如下的完整代码:
<?php
if(isset($_COOKIE['comment_author_'.COOKIEHASH])) {
$lastCommenter = $_COOKIE['comment_author_'.COOKIEHASH];
echo "欢迎回来,亲爱的 ". $lastCommenter ."!";
} else {
echo "欢迎光临夏日博客, 贵客!";
}
?>
我们只需要将这段代码放到需要显示的位置即可以,这样再来预览看一下是否已经显示了欢迎语句,下面我们再来完善一下这个功能,将其来源的地址也一并添加上去,代码如下:
/* 欢迎语句开始 */
function welcome_guest(){
$referer_host = parse_url(htmlspecialchars($_SERVER["HTTP_REFERER"]))['host'];
if(!preg_match("/\.xiariboke\.com/", $referer_host)){
if(is_user_logged_in()){
$guest_name = wp_get_current_user()->display_name;
}else if(isset($_COOKIE['comment_author_'.COOKIEHASH])){
$guest_name = $_COOKIE['comment_author_'.COOKIEHASH];
}
if(isset($referer_host)){
switch($referer_host){
case preg_match("/\.baidu\./", $referer_host) ? true : false:
$referer_name = "百度";
break;
case preg_match("/\.google\./", $referer_host) ? true : false:
$referer_name = "Google";
break;
case preg_match("/\.yahoo\./", $referer_host) ? true : false:
$referer_name = "雅虎";
break;
case preg_match("/\.facebook\./", $referer_host) ? true : false:
$referer_name = "Facebook";
break;
case preg_match("/\.twitter\./", $referer_host) ? true : false:
case preg_match("/t\.co/", $referer_host) ? true : false:
$referer_name = "Twitter";
break;
case preg_match("/\.360\./", $referer_host) ? true : false:
$referer_name = "360";
break;
case preg_match("/\.feng\.com/", $referer_host) ? true : false:
$referer_name = "威锋网";
break;
default:
$referer_name = " <i>".$referer_host."</i> ";
}
}
if(isset($guest_name, $referer_name)){
return "<strong>".$guest_name."</strong>,<br />欢迎您从".$referer_name."进入本站!";
}else if(isset($guest_name)){
return "<strong>".$guest_name."</strong>,欢迎回到本站!";
}else if(isset($referer_name)){
return "欢迎來自".$referer_name."的贵客!";
}else{
return "有朋至远方來,不亦乐乎?";
}
}
return FALSE;
}
/* 欢迎语句結束 */
将本代码放入到主题 functions.php 文件中,代码中的域名替换成你自己站点的域名,然后我们在需要的地方调用如下的代码即可:
<?php if(welcome_guest()){ echo welcome_guest(); } ?>
这功能不错,回头摆弄下试试。