2017-08-26 4 views
0

Ich benutze Funktion, um den Standard-Avatar zu ändern, aber es gibt Foto mit einem Link von Gravatar. Welches Problem mit Wordpress, wenn sie diesen Link von dieser Website anhängen müssen? Ich möchte es total auf meinen Website-Link ändern.Entfernen Gravatar von Avatar Link Wordpress

https://secure.gravatar.com/avatar/c4d1fc512b3f9979ac82dafdf6761889?s=60&d=https%3A%2F%2Fdomain.com%2Fwp-content%2Fthemes%2Fdomain%2Fimages%2Ficon%2Favatar.png&r=g

function sandyavatar ($avatar_defaults) { 
    $myavatar = get_bloginfo('template_directory') . '/images/icon/avatar.png'; 
} 

Kann ich so etwas wie: preg_replace Link zu ändern? Oder wo Wordpress-Code für die Bearbeitung eingefügt.

Vielen Dank.

Antwort

0

Sie können das folgende Codefragment zu Ihrem functions.php in Ihrem Thema hinzufügen, die Gravatar-basierte avatar Verbindung mit Standard-Avatare in lokalen

function replace_gravatar_with_default_local_avatar() { 
    return some_url_to_default_avatar_image; 
} 
add_filter('pre_option_avatar_default', 'replace_gravatar_with_default_local_avatar'); 

zu ersetzen Und wenn Sie tatsächlich eine Art cache oder Gravatar möchten, Sie können eine Cache-Logik einrichten und den get_avatar -Hook verwenden, um dies zu behandeln. Hier ist ein Beispiel für die Cache-Logik.

function cache_gravatar($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 .'.png'; 
    $t = dopt('d_avatarDate')*24*60*60; 
    if (!is_file($e) || (time() - filemtime($e)) > $t) 
     copy(htmlspecialchars_decode($g), $e); 
    else 
     $avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.png')); 
    if (filesize($e) < 500) 
     copy(get_bloginfo('template_directory').'/img/default.png', $e); 
    $avatar = preg_replace("/srcset='([^']*)'/", '', $avatar); 
    return $avatar; 
} 

add_filter('get_avatar','cache_gravatar'); 
+0

Vielen Dank, aber ich sehe keine Veränderung. Link von Gravatar erscheint immer noch. –

+0

Jetzt verstehe ich, was du meinst, überprüfe meine Antwort noch einmal –