文档章节

wordpress 替换Gravatar头像

walter
 walter
发布于 2014/11/19 12:25
字数 590
阅读 326
收藏 0
点赞 0
评论 0

        wordpress 用户头像是使用Gravater.com的头像,但是Gravater国内访问很慢,有时超时,有时和谐,一个字慢慢。

      

一、使用https加载


因为发现Gravatar还没死绝,https的还可以访问,所以使用https访问的也算是一种方案。在functions.php文件内添加以下代码


function get_ssl_avatar($avatar) {

$avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*/','<img src="https://secure.gravatar.com/avatar/$1?s=$2" class="avatar avatar-$2" height="$2" width="$2">',$avatar);

return $avatar;

}

add_filter('get_avatar', 'get_ssl_avatar');

注意:使用这个方法的前提条件是https能够访问

优点:简单稳定

缺点: 当头像特别大时速度可能略慢

二、WordPress本地缓存


在functions.php文件插入以下代码


function my_avatar($avatar) {

$tmp = strpos($avatar, 'http');

$g = substr($avatar, $tmp, strpos($avatar, "'", $tmp) - $tmp);

$tmp = strpos($g, 'avatar/') + 7;

$f = substr($g, $tmp, strpos($g, "?", $tmp) - $tmp);

$w = get_bloginfo('wpurl');

$e = ABSPATH .'avatar/'. $f .'.jpg';

$t = 1209600; //設定14天, 單位:秒

if ( !is_file($e) || (time() - filemtime($e)) > $t ) { //當頭像不存在或文件超過14天才更新

copy(htmlspecialchars_decode($g), $e);

} else  $avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.jpg'));

if (filesize($e) < 500) copy($w.'/avatar/default.jpg', $e);

return $avatar;

}

add_filter('get_avatar', 'my_avatar');

在WordPress安装根目(即跟wp-content等文件夹同一目录下)下新建一个名为 avatar 的文件夹 ,并给予写权限。放入一张同尺寸的头像图片命名为default.jpg。

优点:和主机速度挂钩,如果你的服务器特别快则头像加载也特别快

缺点:只能缓存一个尺寸的头像,国内主机无法使用

三、第三方缓存


这里说的第三方主要指的是多说,在functions.php文件插入以下代码


function duoshuo_avatar($avatar) {

$avatar = str_replace(array("www.gravatar.com","0.gravatar.com","1.gravatar.com","2.gravatar.com"),"gravatar.duoshuo.com",$avatar);

return $avatar;

}

add_filter( 'get_avatar', 'duoshuo_avatar', 10, 3 );

解决方法是从网上找的。


我实际中用到的是缓存到服务器 这就快了  

avatar文件夹放在根目录下

改了下代码 我对php不是很熟悉 以后有空优化下才行

function my_avatar($avatar) {

$tmp = strpos($avatar, 'http');

$g = substr($avatar, $tmp, strpos($avatar, "'", $tmp) - $tmp);

$tmp = strpos($g, 'avatar/') + 7;

$f = substr($g, $tmp, strpos($g, "?", $tmp) - $tmp);

$w = get_bloginfo('wpurl');

$e = ABSPATH .'avatar/'. $f .'.jpg';

//$t = 1209600; //設定14天, 單位:秒

//if ( !is_file($e) || (time() - filemtime($e)) > $t ) { //當頭像不存在或文件超過14天才更新

//copy(htmlspecialchars_decode($g), $e);

//} else  $avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.jpg'));

//if (filesize($e) < 500) copy($w.'/avatar/default.jpg', $e);

$avatar = strtr($avatar, array($g => $w.'/avatar/default.jpg'));

return $avatar;

}


© 著作权归作者所有

共有 人打赏支持
walter
粉丝 4
博文 14
码字总数 2522
作品 0
广州
WordPress头像不显示及拖慢网站解决办法

一、过去解决办法 之前在Gravatar没有被全面和谐时,可以通过修改wordpress调用头像的服务器解决,现在失效。速度慢,可以通过缓存头像,现在也失效。另外就是关闭头像,不过对于网站需要显示...

Surjur ⋅ 2015/04/30 ⋅ 0

[转] Gravatar头像-网站头像设置详解

关于Gravatar头像头像,其实本不想写什么的,不过对于很多来我网站的一些陌生人啊什么的,或者说那些注册的。。。有一些还是没有头像的,于是乎就决定到处copy下弄来这样的文章。。。 Gravat...

红薯 ⋅ 2010/11/08 ⋅ 3

wordpress功能集成(五):无插件实现头像缓存

我想尽量将所有wordpress过滤器的应用教程都放在一堆,wordpress的头像都是有第三方网站提供的,这样有有点也有缺点,缺点:有的地方打开gravatar比较慢,还有的人根本打不开这个网站,那样的...

drewin ⋅ 2013/05/14 ⋅ 0

[note]wordpress在线优化调试中

|bbpress找不到页面 解决:固定链接设为默认 加了bbpress插件,添加了topic不过打开会显示: Oops! That page can’t be found. (我才想说oops呀 还以为数据库或者哪些东西出来问题,因为给...

phala ⋅ 2015/08/03 ⋅ 0

Jarvis/JieStyle Two

JieStyle Two WordPress Themes 主题演示:https://tangjie.me 主题介绍 极简风格,全新 JieStyle 第二代轻柔风格 跨浏览器兼容,支持IE、Edge、Chrome、Safari、Opera 响应式Web设计,自适应...

Jarvis ⋅ 2017/09/17 ⋅ 0

wordpress优化指南

GRAVATAR 头像被墙及解决方案 https还是没被墙的,而且速度还不错,直接调用这个最简单了。 如果你的网站启用了ssl则不需要了,否则functions.php 加入如下代码 也可以使用现成的插件:WP Acc...

WolfX ⋅ 2016/03/03 ⋅ 0

Gitlab禁用Gravatar头像

使用Gitlab时,Gravatar头像破图了,参考如下链接的解决方案,使用了多说的Gravatar CDN: 解决Gitlab的Gravatar头像无法显示的问题 但还是会出现破图的情况,于是选择禁用了Gravatar头像 这...

donhui ⋅ 2015/11/05 ⋅ 0

如何鼓励用户上传头像

原文出处:Morgan Carter 译文出处:设计译言 今天,我们跟着 Morgan 来接着探索有关用户头像设计的另一个问题——如何鼓励用户上传头像。下面进入译文。 上传头像的理由和好处 无论什么时候...

Morgan Carter ⋅ 2015/09/25 ⋅ 0

无意中发现Gravatar,觉得很不错。

地址 http://en.gravatar.com/ 先简介一下吧(抄来的) Globally Recognized Avatar的缩写,是 http://www.gravatar.com 推出的一项服务,意为“全球通用头像”。如果在Gravatar的服务器上放置...

该用户已被和谐 ⋅ 2010/09/21 ⋅ 4

Howard Liu/IXCDN

IXCDN 用自建CDN加速你的网站 介绍 大家都知道,由于某种原因,Google API、Gravatar、WP.COM、S.W.ORG等网站在中国没办法正常访问。而且连接还是加载很久直到超时的那种没法访问,而不是一下...

Howard Liu ⋅ 2016/03/09 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周六乱弹 —— 假如你被熊困到树上

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小小编辑:推荐歌曲《如果写不出好的和弦就该在洒满阳光的钢琴前一起吃布丁》 《如果写不出好的和弦就该在洒满阳光的钢琴前一起吃布丁》- 谢...

小小编辑 ⋅ 44分钟前 ⋅ 5

vbs 取文件大小 字节

dim namedim fs, s'name = Inputbox("姓名")'msgbox(name)set fs = wscript.createobject("scripting.filesystemobject") 'fs为FSO实例if (fs.folderexists("c:\temp"))......

vga ⋅ 今天 ⋅ 1

高并发之Nginx的限流

首先Nginx的版本号有要求,最低为1.11.5 如果低于这个版本,在Nginx的配置中 upstream web_app { server 到达Ip1:端口 max_conns=10; server 到达Ip2:端口 max_conns=10; } server { listen ...

算法之名 ⋅ 今天 ⋅ 0

Spring | IOC AOP 注解 简单使用

写在前面的话 很久没更新笔记了,有人会抱怨:小冯啊,你是不是在偷懒啊,没有学习了。老哥,真的冤枉:我觉得我自己很菜,还在努力学习呢,正在学习Vue.js做管理系统呢。即便这样,我还是不...

Wenyi_Feng ⋅ 今天 ⋅ 0

博客迁移到 https://www.jianshu.com/u/aa501451a235

博客迁移到 https://www.jianshu.com/u/aa501451a235 本博客不再更新

为为02 ⋅ 今天 ⋅ 0

win10怎么彻底关闭自动更新

win10自带的更新每天都很多,每一次下载都要占用大量网络,而且安装要等得时间也蛮久的。 工具/原料 Win10 方法/步骤 单击左下角开始菜单点击设置图标进入设置界面 在设置窗口中输入“服务”...

阿K1225 ⋅ 今天 ⋅ 0

Elasticsearch 6.3.0 SQL功能使用案例分享

The best elasticsearch highlevel java rest api-----bboss Elasticsearch 6.3.0 官方新推出的SQL检索插件非常不错,本文一个实际案例来介绍其使用方法。 1.代码中的sql检索 @Testpu...

bboss ⋅ 今天 ⋅ 0

informix数据库在linux中的安装以及用java/c/c++访问

一、安装前准备 安装JDK(略) 到IBM官网上下载informix软件:iif.12.10.FC9DE.linux-x86_64.tar放在某个大家都可以访问的目录比如:/mypkg,并解压到该目录下。 我也放到了百度云和天翼云上...

wangxuwei ⋅ 今天 ⋅ 0

PHP语言系统ZBLOG或许无法重现月光博客的闪耀历史[图]

最近在写博客,希望通过自己努力打造一个优秀的教育类主题博客,名动江湖,但是问题来了,现在写博客还有前途吗?面对强大的自媒体站点围剿,还有信心和可能型吗? 至于程序部分,我选择了P...

原创小博客 ⋅ 今天 ⋅ 0

IntelliJ IDEA 2018.1新特性

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 本文转载自:netty技术内幕 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再...

Romane ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部