ワードプレスのget_avatarフィルタの使用方法・解説

概要

get_avatarフィルタは、WordPressのアバター画像タグを取得する際に利用されるフィルタであり、アバターのカスタマイズや条件に応じた処理を行うために非常に便利です。このフィルタにより、アバターの変更、表示される形式の変更、デフォルトのアバターの切り替えなどが可能になります。主に以下のような機能を実装する際によく使われます。

  1. ユーザーごとに異なるアバターを表示する
  2. アバターのサイズを動的に変更する
  3. デフォルトアバターをカスタマイズする
  4. 特定の条件下でアバターを非表示にする
  5. アバターのHTML構造を変更する
  6. ユーザーの役割に応じたアバターの変更
  7. SNSアカウントに基づくアバターの取得
  8. アバターに追加のCSSクラスを適用する

構文

apply_filters( 'get_avatar', $avatar, $id_or_email, $size, $default, $alt );

パラメータ

  • $avatar: 元のアバターHTMLコード
  • $id_or_email: ユーザーのIDまたはメールアドレス
  • $size: アバターのサイズ
  • $default: デフォルトのアバター
  • $alt: アバターの代替テキスト

戻り値

変更後のアバターHTMLコード。

関連する関数

https://refwp.com/?titleonly=1&s=get_avatar

使用可能なバージョン

WordPress 2.5 以降

コアファイルのパス

wp-includes/pluggable.php

この関数のアクションでの使用可能性

アクション 使用可能性
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

サンプルコード

サンプルコード1: カスタムCSSクラスをアバターに追加

add_filter( 'get_avatar', 'add_custom_css_class_to_avatar', 10, 5 );

function add_custom_css_class_to_avatar( $avatar, $id_or_email, $size, $default, $alt ) {
    return str_replace( 'class=', 'class="custom-avatar-class" ', $avatar );
}

このサンプルは、アバターのHTMLにカスタムCSSクラスを追加します。これにより、スタイルを適用したり、特定の要素をターゲットにしたりすることが可能になります。

サンプルコード2: 特定のメールアドレスのアバターを変更

add_filter( 'get_avatar', 'change_avatar_for_specific_email', 10, 5 );

function change_avatar_for_specific_email( $avatar, $id_or_email, $size, $default, $alt ) {
    if ( is_email( $id_or_email ) && $id_or_email === 'example@example.com' ) {
        $avatar = '<img src="https://example.com/custom-avatar.png" class="custom-avatar" width="' . esc_attr( $size ) . '" height="' . esc_attr( $size ) . '" alt="' . esc_attr( $alt ) . '" />';
    }
    return $avatar;
}

このサンプルでは、特定のメールアドレスを持つユーザーのアバターをカスタム画像に変更します。

サンプルコード3: サイズに応じてアバターを変更

add_filter( 'get_avatar', 'dynamic_avatar_size', 10, 5 );

function dynamic_avatar_size( $avatar, $id_or_email, $size, $default, $alt ) {
    if ( $size > 100 ) {
        return '<img src="https://example.com/large-avatar.png" class="large-avatar" width="' . esc_attr( $size ) . '" height="' . esc_attr( $size ) . '" alt="' . esc_attr( $alt ) . '" />';
    }
    return $avatar;
}

このサンプルでは、指定されたサイズに基づいて異なるアバター画像を返します。

サンプルコード4: アバターを非表示にする

add_filter( 'get_avatar', 'hide_avatar_for_guests', 10, 5 );

function hide_avatar_for_guests( $avatar, $id_or_email, $size, $default, $alt ) {
    if ( ! is_user_logged_in() ) {
        return ''; // ゲストユーザーにはアバターを非表示
    }
    return $avatar;
}

このサンプルは、未ログインのユーザーにアバターを表示しないようにしています。

サンプルコード5: デフォルトアバターをカスタマイズ

add_filter( 'get_avatar', 'custom_default_avatar', 10, 5 );

function custom_default_avatar( $avatar, $id_or_email, $size, $default, $alt ) {
    if ( empty( $avatar ) ) {
        return '<img src="https://example.com/default-avatar.png" class="default-avatar" width="' . esc_attr( $size ) . '" height="' . esc_attr( $size ) . '" alt="' . esc_attr( $alt ) . '" />';
    }
    return $avatar;
}

このサンプルでは、アバターが設定されていない場合にカスタムのデフォルトアバターを表示します。

この関数について質問する


上の計算式の答えを入力してください