Typecho用户头像默认是调用Gravatar头像,由于国内对Gravatar的访问并不是很友好,有时还会出现无法加载的现象,为了解决此问题,我们可以采取不调用远程第三方头像的方法,将头像保存的服务器本地,直接随机的去调取,这样可以很好的避免头像加载慢或无法加载的问题,而且还可以自定义显示想要的头像图片。
这里给大家分享2种实现方法,一种简单点,另一种稍稍复杂点,是第一种方法的升级版。
想要本地实现就需要修改主题代码:
1、首先我们先打开主题的功能文件(functions.php)
2、在“functions.php”里面添加如下代码:
第一种简单版:
/**
* 添加随机用户头像
*/
function ifsir_random_avatarImg() {
$options = Typecho_Widget::widget('Widget_Options');
$avatarImg = $options->themeUrl .'/img/avatar/' . rand(1, 20) . '.jpg';
echo $avatarImg;
}
使用方法:在需要调用头像的地方将图片引用的src值改为 ifsir_random_avatarImg()
即可,如
<img src="<?php ifsir_random_avatarImg();?>"/>
第二种,升级版:
/**
* 添加随机用户头像 升级版
* 将管理员的头像单独显示,其他用户头像随机
*/
function ifsir_random_avatarImg($user) {
$options = Typecho_Widget::widget('Widget_Options');
if($user == 'admin'){
$avatarImg = $options->themeUrl .'/img/avatar/admin.jpg';// 管理员的头像
}else{
$avatarImg = $options->themeUrl .'/img/avatar/' . rand(1, 20) . '.jpg';
}
echo $avatarImg;
}
使用方法:与第一种方法一样,在图片引用的src中调用即可,不过需要注意的是调用时需要添加用户的属性,如用户评论区想要调用头像就可以这样:
<img src="<?php ifsir_random_avatarImg($comments->author);?>"/>
这里也为大家准备了头像图片,想要的自己下载。
PS:如果想要自定义头像,可自己先找好头像并保存到本地,然后把头像文件名按照“1.jpg、2.jpg、3.jpg ...”的文件名方式来重命名即可。
评论