我查看了WP提供的与化身相关的功能/过滤器,我认为没有直接的方法来判断化身是真实的还是默认的图像,因为您只有url可以使用。
但是,我也看了《Gravatar实施指南》,https://en.gravatar.com/site/implement/images/, 注意,您可以将默认图像设置为在未找到化身时返回404响应。
基于这些信息,我想出了这个代码示例,
add_filter( \'get_avatar\', function( $avatar, $id_or_email, $size, $default, $alt, $args ) {
if ( is_admin() ) {
return $avatar;
}
// Set default response to 404, if no gravatar is found
$avatar_url = str_replace( \'d=\' . $args[\'default\'], \'d=404\', $args[\'url\'] );
// Request the image url
$response = wp_remote_get( $avatar_url );
// If there\'s no avatar, the default will be used, which results in 404 response
if ( 404 === wp_remote_retrieve_response_code( $response ) ) {
// Do something
}
// Return img html
return $avatar;
}, 10, 6 );
这可能需要一些微调,但在这种形式下,它可以完成工作。我不知道这会不会对网站性能产生一些负面影响。特别是如果有大量的头像URL需要在页面加载时进行检查
(但可能状态检查结果可以保存到用户/评论元,从$ID\\u或电子邮件中获取ID,以提高性能,嗯…?)你也可以检查一下get_avatar_data() 我想是过滤器。