web-dev-qa-db-fra.com

Comment supprimer Gravatar de la colonne Nom d'utilisateur

Comment supprimer l’image Gravatar de la colonne Nom d’utilisateur de la Tous les utilisateurs page d'administration?

enter image description here

2
Giraldi

Il semble y avoir un filtre pour la fonction get_avatar. Donc, je viens de sortir une chaîne vide.

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

UPDATE: Restreindre à la page ' Tous les utilisateurs '.

1
Giraldi
  1. Vous devez filtrer pre_option_show_avatars et renvoyer quelque chose qui porte la valeur FALSE mais n'est pas FALSE. Disons un 0.
  2. Vous devriez limiter ce filtre aux pages de la liste des utilisateurs.
    • Dans un site unique, l'action appropriée est restrict_manage_users.
    • Dans un écran de gestion de réseau qui pourrait être restrict_manage_users-network, mais cela ne fonctionne pas, nous utilisons le filtre wpmu_users_columns et renvoyons tout ce que nous obtenons ici.

Résultat:

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

Puisqu'il n'y a pas de colonne spéciale d'avatar à désélectionner (les avatars sont à l'intérieur du nom d'utilisateur colonne), vous pouvez essayer de cacher les avatars via 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');

où ils sont cachés pour les non-administrateurs.

Le résultat sera comme ça:

Hide avatars

1
birgire

C'est un vieux fil de discussion, mais au cas où quelqu'un d'autre en aurait besoin: à partir de la version 4.2, vous pouvez utiliser le filtre pre_get_avatar pour contourner l'extraction de l'avatar et renvoyer une chaîne vide.

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