WordPress Gravatar 头像加速加载与本地缓存

/ LonelyMan / 1阅读 / 0评论 / 分类: 笔记

在当前使用的主题的目录下创建一个avatar的目录

functions.php的最后一行的?>前加上下面的代码

        function lerm_avatar_cache( $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 );//匹配图片名称
        	$e   = get_template_directory() . '/avatar/' . $f . '.png';//图片缓存路径
        	$t   = 604800; //缓存天数
        	if ( ! is_file( $e ) '' ( time() - filemtime( $e ) ) > $t ) {
        		copy( htmlspecialchars_decode( $g ), $e );
        	} else {
        		$avatar = strtr( $avatar, array( $g => get_template_directory_uri() . '/avatar/' . $f . '.png' ) );
        	}
        	if ( filesize( $e ) < 500 ) {
        		copy( get_template_directory() . '/avatar/default.png', $e );
        	}
        		return $avatar;
        }
        add_filter( 'get_avatar', 'lerm_avatar_cache' );

添加后效果如图所示

保存后打开任意一点文章一次刷新缓存,之后再打开浏览器控制台就会发现没有来自 https://secure.gravatar.com/ 的资源了,头像变成从本地加载了

#PHP(3)#Wordpress(2)

文章作者:LonelyMan

文章链接:https://blog.lonelyman.site//archives/wordpress-gravatar-tou-xiang-jia-su-jia-zai-yu-ben-di-huan-cun

版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0 许可协议,转载请注明出处!


评论