现在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');
能看出来,那段代码和现在的版本冲突吗?没找出替代代码之前,只能把头像缓存代码删除先了。
没有评论