概要
get_avatar
フィルタは、WordPressのアバター画像タグを取得する際に利用されるフィルタであり、アバターのカスタマイズや条件に応じた処理を行うために非常に便利です。このフィルタにより、アバターの変更、表示される形式の変更、デフォルトのアバターの切り替えなどが可能になります。主に以下のような機能を実装する際によく使われます。
- ユーザーごとに異なるアバターを表示する
- アバターのサイズを動的に変更する
- デフォルトアバターをカスタマイズする
- 特定の条件下でアバターを非表示にする
- アバターのHTML構造を変更する
- ユーザーの役割に応じたアバターの変更
- SNSアカウントに基づくアバターの取得
- アバターに追加の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;
}
このサンプルでは、アバターが設定されていない場合にカスタムのデフォルトアバターを表示します。