怎样解决WordPress页面中Gravatar无法正常显示

2016年8月15日 | 分类: 【源码】

【方案1:不使使用远端头像图片】

参考:https://www.jb51.net/cms/119613.html

优点:彻底
缺点:升级时需要修改源代码

WordPress默认的头像是读取gravatar.com上的图片的,对于国内用户来说会使网页打开速度变慢。所以我决定删除掉这块功能。

修改get_avatar函数,在 wp-includes/pluggable.php 内的 2519 ~ 2668。修改后的函数如下:

if ( !function_exists( 'get_avatar' ) ) :
/**
* Retrieve the avatar for a user who provided a user ID or email address.
*
* @since 2.5
* @param int|string|object $id_or_email A user ID, email address, or comment object
* @param int $size Size of the avatar image
* @param string $default URL to a default image to use if no avatar is available
* @param string $alt Alternate text to use in image tag. Defaults to blank
* @return string tag for the user's avatar
*/
function get_avatar( $id_or_email, $size = '96', $default = '', $alt = false ) {
if ( ! get_option('show_avatars') )
return false;
if ( false === $alt)
$safe_alt = '';
else
$safe_alt = esc_attr( $alt );
if ( !is_numeric($size) )
$size = '96';
$default = includes_url('images/blank.gif');
$avatar = "";
return apply_filters('get_avatar', $avatar, $id_or_email, $size, $default, $alt);
}
endif;

即使用该函数,仅可能返回一个默认头像(位于wp-includes/images/blank.gif内),再配合simple local avatars或Add Local Avatar插件,就实现了预期的效果。

【方案2:使用插件:WP User Avatar 使用用户自定义本地头像】

官网:https://wordpress.org/plugins/wp-user-avatar/

优点:在线安装管理
缺点:作为插件