国内では多くの人がメールアドレスの使用に慣れておらず、Gravatar アバターを持っていないことさえあります。そのため、国内の状況に合わせてテーマをある程度最適化しました。QQ メールを使用している場合は QQ アバターを呼び出し、それ以外の場合は引き続き Gravatar アバターを呼び出します。これにより、QQ ユーザーにも Gravatar ユーザーにも便利です。この方法でウェブページの読み込み速度が遅くなることはなく、比較的優れた方法だと言えるでしょう。

画像

まず、QQ アバターを取得するためのインターフェース https://q.qlogo.cn/g?b=qq&nk=52958812&s=100 を見つけました。しかし、コメント投稿者の QQ 番号を直接取得することはできないため、コメント投稿者の email アドレスを取得する必要があります。

get_comment($parent_id)->comment_author_email);

email アドレスを取得したら、QQ メールかどうかを判定します。

if(strpos($qqmail, '@qq.com'))

QQ メールの場合は、QQ アバターを呼び出します。

$avatar_source = 'q.qlogo.cn';
$img = 'g?b=qq&nk=' . preg_replace('/@qq.com/', '', $qqmail) . '&s=100';

それ以外の場合は、引き続き Gravatar アバターを呼び出します。

$avatar_source = 'cn.gravatar.com';
$img = 'avatar/$1?s=$2';

これで、この問題は無事に解決しました。

完全なコードは以下のとおりです。

// Gravatar 头像
function get_avatar_javst($avatar) { 
    $protocol = is_ssl() ? 'https' : 'http';
    $qqmail = trim(get_comment($parent_id)->comment_author_email);
    if (strpos($qqmail, '@qq.com')) {
        $avatar_source = 'q.qlogo.cn';
        $img = 'g?b=qq&nk=' . preg_replace('/@qq.com/', '', $qqmail) . '&s=100';
    } else {
        $avatar_source = 'cn.gravatar.com';
        $img = 'avatar/$1?s=$2';
    }
    $avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&amp;.*/', '<img class="avatar avatar-$2" src="' . $protocol . '://' . $avatar_source . '/' . $img . '" width="$2" height="$2" />', $avatar);
    return $avatar;
}
add_filter('get_avatar', 'get_avatar_javst');