我正在尝试在functions.php中为WordPress添加自定义默认头像,但图片未显示在“设置/讨论”或网站上的其他位置。代码有效,因为添加了自定义字段名称的新无线电字段,但图像不会显示。是否因为我正在使用Localhost而未显示头像?
我没有足够的代表来评论类似的问题。
这是代码:
add_filter( 'avatar_defaults' , 'wps_new_avatar' );
function wps_new_avatar( $avatar_defaults ){
$new_avatar = get_stylesheet_directory_uri() . '/images/default-avatar.png';
$avatar_defaults[$new_avatar] = "Default Avatar";
return $avatar_defaults;
}
我尝试了其他示例和'Add-New-Default-Avatar'插件,结果相同。
答案 0 :(得分:1)
我遇到了同样的问题并提出了这个完全无法解决的解决方案......虽然有效但仍然有效。)
add_filter( 'get_avatar', 'so_14088040_localhost_avatar', 10, 5 );
function so_14088040_localhost_avatar( $avatar, $id_or_email, $size, $default, $alt )
{
$whitelist = array( 'localhost', '127.0.0.1' );
if( !in_array( $_SERVER['SERVER_ADDR'] , $whitelist ) )
return $avatar;
$doc = new DOMDocument;
$doc->loadHTML( $avatar );
$imgs = $doc->getElementsByTagName('img');
if ( $imgs->length > 0 )
{
$url = urldecode( $imgs->item(0)->getAttribute('src') );
$url2 = explode( 'd=', $url );
$url3 = explode( '&', $url2[1] );
$avatar= "<img src='{$url3[0]}' alt='' class='avatar avatar-64 photo' height='64' width='64' />";
}
return $avatar;
}
<强>结果:强>
当然,此过滤器仅用于开发。