QQメールアドレスを使用してQQアバターを呼び出すWordPressコメント

16,032 11

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

画像

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

PHP
get_comment($parent_id)->comment_author_email);

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

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

QQメールアドレスであれば、QQアバターを呼び出します。

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

そうでなければ、引き続きGravatarアバターを呼び出します。

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

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

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

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

コメント

(11)
  1. 果壳Sir
    MIUI Browser 10 Android 9MIX 3

    看看,试试

  2. 果壳Sir
    MIUI Browser 10 Android 9MIX 3

    怎么使用呢?

  3. Sogou Explorer 1 Windows 7

    www.zhulouren.com 测试

  4. Edge 18 Windows 10

    不能拉去qq用户的名称吗?

  5. Edge 18 Windows 10

    有机会能,交换一个友链吗?我的网站还在建设

  6. QQBrowser 10 Windows 10

    一知半解啦

  7. QQBrowser 10 Windows 10

    请问 你这个 如何 做到 呢 好好玩

コメントを投稿

憂いを忘れる一枚

「憂いを忘れる一枚」は、技術探究と日々の暮らしをテーマにした個人サイトです。Web 開発、バックエンド、DevOps の実践を記録し、ソフトウェアツールやデジタル体験、コードの外で得た見聞と思索を共有します。

© 2026 憂いを忘れる一枚. 無断転載を禁じます.