详细说明WordPress中的头像缓存和代理中的缓存更新方法
wordpress评论中的头像使用Gravatar的头像服务(Gravatar官方注册地址:http://en.gravatar.com),用户缓存的头像一般都是固定的,所以我们可以在本地缓存头像,提高我们网站的访问速度。我的wordpress头像目录的头像缓存:
设置wordpress头像缓存功能的方法是在有权限的根目录下设置一个文件夹头像755。在里面放一个默认头像(default.jpg),没有头像的童鞋会用默认。代码如下:
函数my_avatar($email,$size='32 ',$default=' ',$ alt=' '){ $ f=MD5(strtolow($ email));$a=WP_CONTENT_URL。/avatar/'。尺码。png ';$e=WP_CONTENT_DIR。/avatar/'。尺码。png ';$d=WP_CONTENT_DIR。/avatar/'。$ f '-d . png ';if($ default==' ')$ default=' http://www . wpnoob.cn/avatar/default . jpg ';//大小需要改为自己网站评论的默认头像$ t=2592000//缓存有效期为30天,其中单位为:秒如果(!is _ file($ e)| |(time()-file mtime($ e))$ t){ if(!is _ file($ d)| |(time()-file mtime($ d))$ t){//验证是否有头像$ uri=' http://www.gravatar.com/avatar/'.$ f '?d=404 ';$ headers=@ get _ headers($ uri);if(!Preg _ match ('| 200 | ',$ headers[0]){//如果没有头像,创建一个新的空白文件作为标记$handle=fopen($d,' w ');fc lose($ handle);$ a=$ default} else {//update $ r=get _ option(' avatar _ rating ')如果有头像但不存在;$ g=' http://www . gravatar.com/avatar/'。$f . '?s='。$size。r='。$ r;副本($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);}将上述代码添加到主题的functions.php文件中。替换get_avatar函数,用my_avatar获取头像地址。也有例外,functions.php评论列表功能:
get _ avatar($注释需要更改为:
My_avatar($ comment-comment _ author _ Email)由于my _ avatar函数只能通过电子邮件检索用户的头像,因此在上述情况下,第一个参数需要改为email address。
get_avatar功能介绍:使用上述方法简单方便。不过,还有一步需要注意。确保无论在哪里调用头像,get_avatar函数都会被使用。通常都是一样的,只是老主题不一样。如果没有,就换一个。
如果更改为:
?PHP echo get _ avatar($ comment-comment _ author _ email,$size='48 ',$default=get_bloginfo('wpurl ')。/avatar/default . jpg’);
squid中更新css/js文件缓存的方法是在wordpress中添加css或js文件。我们通常使用这四个功能来实现这一点:
可以在函数WP _ enqueue _ script()WP _ enqueue _ style()WP _ register _ script()WP _ register _ style()中定义css/js的版本号,这样我们在更新css/js文件时就可以知道浏览器缓存了。默认版本号是wordpress。版本号将链接在css/js的完整路径后面。一般版本号改变后,css/js加载的样式的完整URL也会随之改变。当浏览器发现URL发生变化时,会重新请求css/js文档,这样就可以加载最新的css/js文档。
但是很多代理软件(比如squid)不支持?“没有缓存的形式,当我们用反向代理缓存我们的网站,尤其是squid3.0之后,我们已经开始错过了”?“”的url已缓存。所以如果要用squid的缓存功能,一定要去掉?”,更新squid代理的缓存只能通过修改文件名来实现。
我们将介绍如何在wordpress中通过控制版本号来修改js/css文件名,从而达到在代理软件中缓存的目的:1。将以下代码添加到我们的主题代码functions.php文件中:
/** *描述: wordpress在代理(鱿鱼)中更新css/js文件缓存的方法*作者:教程网*作者http://www.wpnoob.cn/*函数ds _ filename _ based _ cache _ breaking($ src){//管理员的后台css/js文件无需处理if (is_admin())返回$ src//将版本号添加到文件名中已"."号来区分返回preg_replace('/\ .(js|css)\?ver=(.)$/', '.$2.$1 ',$ src);}add_filter('script_loader_src ',' ds _ filename _ based _ cache _ breaking ');add_filter('style_loader_src ',' ds _ filename _ based _ cache _ breaking ');如果你使用的是街头流氓服务器,在你的根目录的htaccess .文件下添加:
if模块mod _重写。c重写引擎基于重写/重写条件% { REQUEST _ FILENAME }!-f重写条件% { REQUEST _ FILENAME }!重写器^(.)\.(.)\.(js|css)$ $1 .$3 [L]/IfModule如果你是nginx服务器配置如下:
地点~ ^(.)\.(.)\.(js|css)$ {别名$1 .$3;}
版权声明:详细说明WordPress中的头像缓存和代理中的缓存更新方法是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。