2012-12-30 2 views
2

functions.php에서 WordPress에 사용자 정의 기본 아바타를 추가하려하지만 이미지가 설정/토론 또는 사이트의 다른 곳에 표시되지 않습니다. 새 라디오 필드에 사용자 정의 필드 이름이 추가 되었기 때문에 코드가 작동하지만 이미지는 표시되지 않습니다. 로컬 호스트를 사용하고 있기 때문에 아바타가 표시되지 않습니까?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; 
} 

:

여기에 코드입니다.

저도 같은 문제에 직면하고이 완전히 hackish 솔루션을 내놓았다했다
+0

$ new_avatar = . '/ images/default-avatar.png'; – Arunu

+0

로컬 서버에서 외부 액세스를 사용하지 못할 수도 있습니다. 아바타는 일반적으로 외부 리소스에서 가져옵니다. 물론 온라인에 있어야합니다. –

+0

@Arunu : 아니요. 작동하지 않았습니다. – gundam00

답변

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; 
} 

결과 :

localhost avatar


물론이 필터는 개발 용으로 만 사용됩니다.

+0

나는이 코드가 크게 향상 될 수 있다는 것을 매우 긍정적이다. 방금 작업 할 때까지 (SO 연구에 기반한) 다른 * 다음에 하나의 해킹을 적용했습니다. – brasofilo

+0

이 작품! 이것은 내 질문에 사용 된 코드, 'Add-New-Default-Avatar'플러그인 및 기본 아바타를 변경하기위한 mu-plugins와 함께 작동합니다. 그러나 내장 된 다른 모든 아바타와 테스트 사용자가 업로드 한 것을 끊어 버립니다. 하지만 개발 목적으로 작동합니다! – gundam00

+0

@ gundam00, * 사용자가 * 아바타 **를 업로드 ** ** [유용한 Q & A] (http://wordpress.stackexchange.com/search?q=avatar_default). – brasofilo

관련 문제