Typecho获取访客gravatar头像

已邀请:

likfe

赞同来自:

### 实现方式
得到访客在网站记住的邮箱、用户、网址等信息
根据邮箱地址转换成Gravatar的头像地址

**获取用户邮箱**
typecho获取邮箱地址为:
{{{
<?php $this->remember('mail',true) ?>
}}}
**Gravatar头像地址**
直接通过URL获取Gravatar头像地址
{{{
<img src="http://www.gravatar.com/avatar/md5(<?php $this->remember('mail',true) ?>)?s=32" >;
}}}
### 进阶
由于使用了gravatar头像缓存插件GravatarCache,这让头像显示变的简单
因为GravatarCache中实现了根据邮箱获取头像的函数
{{{
<?php GravatarCache::getGravatarCache('example@domain.com'); ?>
}}}
效果

原始效果

![原始效果](http://iyanlei.com/usr/uploads ... 54.png)

使用后

![使用后](http://iyanlei.com/usr/uploads/2014/11/13925999.png)


完整代码

{{{
<?php
if($this->remember('author',true) != "" && $this->remember('mail',true) != ""){ ?>
<p class="title welcome" style="text-align:center;">
<a class="edit_author" onclick="$('.welcome').hide()&&$('.author_info').show();return false;">
<img style="display: block;margin: 35px auto 8px auto;float: center;" class="avatar"
src="<?php echo GravatarCache::getGravatarCache($this->remember('mail',true),false,50); ?>"
alt="QQ" width="50" height="50">
<?php $this->remember('author'); ?>
</a>
</p>
<div class="author_info" style="display:none;">
<?php } ?>
<p>
<label for="author" class="required"><?php _e('称呼'); ?></label>
<input type="text" name="author" id="author" class="text" value="<?php $this->remember('author'); ?>" />
</p>
<p>
<label for="mail"<?php if ($this->options->commentsRequireMail): ?> class="required"<?php endif; ?>><?php _e('邮箱'); ?></label>
<input type="email" name="mail" id="mail" class="text" value="<?php $this->remember('mail'); ?>" />
</p>
<p>
<label for="url"<?php if ($this->options->commentsRequireURL): ?> class="required"<?php endif; ?>><?php _e('网站'); ?></label>
<input type="url" name="url" id="url" class="text" placeholder="<?php _e('http://example.com'); ?>" value="<?php $this->remember('url'); ?>" />
</p>
<?php if($this->remember('author',true) != "" && $this->remember('mail',true) != ""){ ?>
</div>
<?php } ?>
}}}

要回复问题请先登录注册