2017-02-04 18 views
0

WordPressの管理者からグラビアリンクを削除したいのですが、プロフィール写真を残したいと思います。これを行う方法?Wordpressからgravatarリンクを削除するには?

+1

あなたが訪問するべきhttps://en.support.wordpress.com/gravatars/#upload-an-avatar –

+0

https://en.support.wordpress.com/gravatars/ – illeas

答えて

0

グラファータベースのアバターリンクをローカルのデフォルトのアバターに置き換える場合は、テーマのfunctions.phpに次のコードフラグメントを追加できます。

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'); 

そして、あなたが実際にcacheの並べ替えやグラバターをしたい場合は、キャッシュロジックを確立し、これを処理するget_avatarフックを使用することができます。キャッシュロジックの例を次に示します。

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'); 
関連する問題