WordPress作者信息及wordpress头像缓存

如风2016-09-24浏览 481 评论 0
image 京东购物

今天很幸运在姜辰博客看到作者页,关于作者信息很好看。于是自己也做了个布局用的是姜辰的,只是稍加修改。效果如下图:Wordpress作者信息及wordpress头像缓存

1、用户资料呈现

<div id="author" class="headn">
<div class="gravatar">
<?php if (function_exists('get_avatar')) { echo get_avatar( get_the_author_email(), '70' ); }?><!--用户头像 -->
</div><div class="about">
<span class="authorname">作者: <b><?php echo get_the_author() ?></b></span><span class="authoremail"><b>
<a href="tencent://message/?uin=<?php the_author_meta('qq_id'); ?>&Site=<?php bloginfo('home'); ?>&Menu=yes" target="_blank"><img src="http://wpa.qq.com/pa?p=1:<?php the_author_meta('qq_id'); ?>:10" alt="点击这里给我发送消息" border="0"></a></b><!--加粗的为用户QQ号,可以个人资料添加修改 -->

</span><p><?php the_author_description(); ?></p></div></div><!--加粗的为用户的自我介绍,可以个人资料添加修改 -->

下面介绍下关于作者相关CSS.

/* 作者栏目页 */
#author,.headn{padding: 0;min-height: 77px;font-size: 15px;}
#author .gravatar{background:#FFF;border:1px solid #F2F2F2;float:left;height:78px;width:78px;padding:3px;display:inline-block;margin-right:0.6em;}
#author .about b{margin:0 3px;font-size:0.9em;}.authorname{margin-right: 0.6em;}
#author p{font-size:.85em;margin: 4px auto;}
.the-author{list-style:none outside none;margin:0;padding:0}
.the-author li{float:left;margin:0 1.4em 0 0}
.the-author li a{color:#8999C3;font-size:0.78em;display:block;padding:0}
.xcat h3{font-size:0.98em;}.xcat b,.xcat span{color:#09c;font-size:1.01em;margin-right:0.6em;}

2、增强个人资料

至于增强个人资料我也放出来与大家分享下,虽然很多网站有介绍。但还有很多新手不知道,所以//////

//增加个人资料项
function my_profile( $contactmethods ) {
$contactmethods['qq_id'] = 'QQ';
$contactmethods['weibo_sina'] = '新浪微博ID'; //增加
$contactmethods['weibo_tx'] = '腾讯微博ID';
$contactmethods['weixin_id'] = '微信ID';
$contactmethods['taobao_url'] = '商家店铺Url';
return $contactmethods;
}
add_filter('user_contactmethods','my_profile');

//以上放在主题的functions.php文件内,导出的方法是:如QQ就是<?php the_author_meta('qq_id'); ?>,可以放在作者页和内容页都会显示当前作者的QQ只要你在个人资料中添加了。

3、缓存用户头像,因为很多用户反应头像无法加载。因为被墙了,要翻墙。其实最好的方法是缓存用户头像到本地。

//avatar头像缓存
function my_avatar( $email = 'wzpeople@qq.com', $size = '40', $default = '', $alt = '') {
$f = md5( strtolower( $email ) );
$a = get_bloginfo('template_url') . '/avatar/'. $f . $size . '.png';
$e = get_template_directory() . '/avatar/' . $f . $size . '.png';
$d = get_template_directory() . '/avatar/' . $f . '-d.png';
$txdf = get_bloginfo('template_url'). '/avatar/default.jpg';
if($default=='')
$default = $txdf;
$t = 2592000; // 缓存有效期30天, 这里单位:秒
if ( !is_file($e) || (time() - filemtime($e)) > $t ) {
if ( !is_file($d) || (time() - filemtime($d)) > $t ) {
// 验证是否有头像
$uri = 'http://gravatar.duoshuo.com/avatar/' . $f . '?d=404';
$headers = @get_headers($uri);
if (!preg_match("|200|", $headers[0])) {
// 没有头像,则新建一个空白文件作为标记
$handle = fopen($d, 'w');
fclose($handle);
$a = $default;
}
else {
// 有头像且不存在则更新
$r = get_option('avatar_rating');
$g = 'http://cn.gravatar.com/avatar/'. $f. '?s='. $size. '&r=' . $r;
copy($g, $e);
}
}
else {
$a = $default;
}
}
$avatar = "<img alt='{$alt}' src='{$a}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
return apply_filters('my_avatar', $avatar, $email, $size, $default, $alt);
}

注明下,多说的头像缓存不给力,加载很慢。我用了gravatar.com中国的,加载很快。加粗的可以看出来。对了请在主题内新建一个avatar文件夹

  1. 姜辰博客:http://www.mhcf.net/author/1
  2. 作者相关函数:wordpress作者的相关函数调用代码大全

XM AD

如风,发表在建站杂记打印此文

本站为姜哥创建的一介小民,内容大多为原创。创作不易,转载请注明来源,谢谢!

发表评论



20 + 98 = ?