写上QQ号码,显示QQ头像插件的wordpress插件效果如下:

test

只需在留评论网址部分填上QQ号码,考虑到国内很少用Gravatar头像的用户,而且相比邮箱来说,习惯留QQ号的也很多,感谢Ono Oogami提供原始插件下载地址

该插件缺点是:目前显示的是QQ系统默认的头像,自定义头像由于腾讯的原因,还没找到地址;

另外不能同时用上Gravatar头像缓存,我的想法就是整合一下功能,无论是Gravatar还是QQ头像都缓存到本地,加快加载时间(事实上,腾讯提供的查询QQ头像的地址也不是很稳定。)比较几种缓存方法,还是无插件的《簡易的 gravatar 頭像緩存》方法简单。

使用方法参照willin提供的步骤:

1、先在你的網站 wp-content 的同級目錄 建立資料夾: /avatar 我更改了位置/wp-content/cache/img

img文件夹權限:755,

2、準備 gravatar 緩存的路徑準備一張適合你模板尺寸的默認頭像, 名為"default.jpg" 放在此路徑。找到原來的 comments.php 或是在 functions.php 裏的 function mytheme_comment($comment, $args, $depth) 會有一段像這樣:

< ?php echo get_avatar($comment,$size='50',$default='
' ); ?> 

替换为:

<?php

    $t = 604800; //設定7天, 單位:秒
    $d = get_bloginfo('wpurl').'/wp-content/cache/img/default.jpg';
    	//QQ头像地址, %s表示QQ号

    $qq_face_url = 'http://sns.qq.com/cgi/svr/face/getface?type=1&fid=41&uin=%s';
    	if ( isset($comment->comment_author_url) && preg_match

    ('/^(http:\/\/)?[1-9][0-9]*$/i', $comment->comment_author_url) ) {
    	$f = preg_replace('|\D*|', '', $comment->comment_author_url);
    	$g = str_replace('%s', $f, $qq_face_url);}
    	else{
    	$f = md5(strtolower($comment->comment_author_email));
    	$r = get_option('avatar_rating');
    	$g = 'http://www.gravatar.com/avatar/'.$f.'?s=50&d='.$d.'&r='.$r;
    		}
    	$a = get_bloginfo('wpurl').'/wp-content/cache/img/'.$f.'.jpg';
    	$e = ABSPATH .'/wp-content/cache/img/'.$f.'.jpg';
    	if ( !is_file($e) || (time() - filemtime($e)) > $t ){
    			copy($g, $e);if (filesize($e) < 500) {copy($d, $e);}
    			}
    	?>

 

原来的QQ face是插件,看了下代码很简单,只是用了“add_filter” hook 来实现,修改了下,直

接判断输出了。只是后台没办法看见,另外ajax评论由于也用的是“get_avatar”函数,觉得没必要

再加进去,当然需要的话只要把所有用到“get_avatar”的地方都用上面的替换就好了。

另外,我修改了原插件中获取QQ头像的地址,下面第一个,好像这个比较稳定(UID后面跟QQ号)

webQQ:

http://sns.qq.com/cgi/svr/face/getface?type=1&fid=41&uin=

再提供几个地址:(qq群)

http://qun.qq.com/cgi/svr/face/getface?type=1&uin=    (原插件用的这个)

http://face7.qun.qq.com/cgi/svr/face/getface?type=1&uin=

动态头像(会员才有用):

http://58.60.9.59/HISFACE/getfacefile?version=1&from=qqclub&usertype=1&dstuin=

这几个地址除了最后一个会员才能看到,其他的返回的好像是QQ的默认头像,但是我的确用第二个得到了自定义的头像,不过第二天就不行了,o(╯□╰)o,好像与网速也有关系,所以我做了缓存,需要的可以尝试更换下地址

总结:实现评论框里QQ头像部分是改写的Ono Oogami的QQ face插件,缓存部分是willin的,我也是CP党,只整合下功能,稍稍改改,不会PHP,代码也很糟糕,有问题不负责任。

PS:换上immmmm的新主题,至少这个比较简单,还能看懂,从最简单的开始折腾,最近很忙,还是忍不住啊。

  1. vinuu (2011.05.17 at 20:05) 9楼

    :grin:

  2. 荒野无灯 (2011.06.28 at 20:33) 10楼

    嗯,QQ头像是没办法获取的,你上面说的网址没有一个是可行的。如果你本地登录过了,会显示你自己的头像的。如果没有本地用相同的浏览器登录过,就只显示默认的企鹅

评论分页: 1 2

发布评论

邮箱(必填)

换个背景