Gravatar头像本地缓存代码感觉已经失效

现在Wordpress是最新的5.6.2版本。每次点击进入后台或都点击查看评论时都是会很卡,甚至页面无法响应。但是前台日志页面打开速度又很快。这就说明不是服务器的原因。仔细排查,发现是Gravatar头像显示问题导致的卡顿甚至无法响应。因为每次进入后台,就有最新评论的显示,这也与点击查看评论很卡一致。

发现问题后,在主题functions.php文件中把头像缓存代码删除。再点击进入后台和查看评论,发现一切正常!这是什么原因呢?是因为一直使用好好的头像缓存代码与Wordpress最新版5.6.2不兼容吗?

代码缓存方案来自 Willin Kan 大师,一直都用得好好地。

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');

能看出来,那段代码和现在的版本冲突吗?没找出替代代码之前,只能把头像缓存代码删除先了。

暂无评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注