web-dev-qa-db-ja.com

ユーザー名列からGravatarを削除する方法

All UseradminのUsername列からGravatarイメージを削除する方法ページ?

enter image description here

2
Giraldi

get_avatar関数にはフィルタがあるようです。だから私はそれに空の文字列を出力するだけです。

function remove_avatar_from_users_list( $avatar ) {
    if (is_admin()) {
        global $current_screen; 
        if ( $current_screen->base == 'users' ) {
            $avatar = '';
        }
    }
    return $avatar;
}
add_filter( 'get_avatar', 'remove_avatar_from_users_list' );

更新: '全ユーザ'ページのみに制限します。

1
Giraldi
  1. pre_option_show_avatarsをフィルタリングし、FALSEと評価されるがFALSEではないものを返す必要があります。 0と言いましょう。
  2. あなたはそのフィルタをユーザリストページに制限するべきです。
    • 単一サイトでは、適切なアクションはrestrict_manage_usersです。
    • restrict_manage_users-networkのようなネットワーク管理画面ではうまくいきませんので、フィルタwpmu_users_columnsを使い、ここで得たものを返します。

結果:

add_filter( 'wpmu_users_columns', 'no_avatars_in_user_list' );
add_action( 'restrict_manage_users', 'no_avatars_in_user_list' );

function no_avatars_in_user_list( $in = NULL )
{
    add_filter( 'pre_option_show_avatars', '__return_zero' );
    return $in;
}
1
fuxia

設定を解除するための特別なアバター列がないため(アバターはユーザー名の内側にありますcolumn)、代わりにcssを使ってアバターを隠すこともできます。

function hide_avatars_wpse_94126() {
    if(!current_user_can('manage_options')){
        // hide only for non-admins
        echo "<style>.users td.username img.avatar{display:none !important;}</style>";
    }
}
add_action('admin_head-users.php','hide_avatars_wpse_94126');

管理者以外のユーザーには表示されません。

結果は次のようになります。

Hide avatars

1
birgire

これは古いスレッドですが、他の誰かがそれを必要とする場合のために:バージョン4.2以降、pre_get_avatarフィルタを使って実際のアバターを引っ張って空の文字列を送り返すのを迂回することができます。

add_filter( 'pre_get_avatar', 'rkv_remove_avatar_from_list', 10, 3 );
/**
 * Remove the avatar from just the user list.
 *
 * @param string $avatar       HTML for the user's avatar. Default null.
 * @param mixed  $id_or_email  The Gravatar to retrieve. Accepts a user_id, gravatar md5 hash,
 *                             user email, WP_User object, WP_Post object, or WP_Comment object.
 * @param array  $args         Arguments passed to get_avatar_url(), after processing.
 *
 * @return string              An empty string.
 */
function rkv_remove_avatar_from_list( $avatar, $id_or_email, $args ) {

    // Do our normal thing on non-admin or our screen function is missing.
    if ( ! is_admin() || ! function_exists( 'get_current_screen' ) ) {
        return $avatar;
    }

    // Get my current screen.
    $screen = get_current_screen();

    // Bail without the object.
    if ( empty( $screen ) || ! is_object( $screen ) || empty( $screen->base ) || 'users' !== $screen->base ) {
        return $avatar;
    }

    // Return an empty string.
    return '';
}
1
Norcross