Cómo eliminar Gravatar de la columna Nombre de usuario

2

¿Cómo eliminar la imagen Gravatar de la columna de nombre de usuario en la página de administración de todos los usuarios ?

    
pregunta Giraldi 01.04.2013 - 13:44

4 respuestas

1

Parece que hay un filtro para la función get_avatar . Así que solo le dejo una cadena vacía.

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

ACTUALIZACIÓN: restringir solo a la página ' Todos los usuarios '.

    
respondido por el Giraldi 02.04.2013 - 05:45
1

Ya que no hay una columna especial avatar para desarmar (los avatares están dentro de la columna nombre de usuario ), podría intentar ocultar los avatares a través de 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');

donde están ocultos para no administradores.

El resultado será así:

    
respondido por el birgire 01.04.2013 - 14:10
1
  1. Tienes que filtrar pre_option_show_avatars y devolver algo que se evalúe como FALSE pero no es FALSE . Digamos un 0 .
  2. Debería restringir ese filtro a las páginas de la lista de usuarios.
    • En un sitio único, la acción correcta es restrict_manage_users .
    • En una pantalla de administración de red que podría ser restrict_manage_users-network , pero eso no funciona, por lo que usamos el filtro wpmu_users_columns y devolvemos lo que obtengamos aquí.

Resultado:

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;
}
    
respondido por el fuxia 02.04.2013 - 05:16
1

Este es un hilo antiguo, pero en caso de que alguien más lo necesite: a partir de la versión 4.2, puedes usar el filtro pre_get_avatar para evitar el tirón del avatar real y simplemente enviar una cadena vacía.

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 '';
}
    
respondido por el Norcross 28.03.2016 - 21:48

Lea otras preguntas en las etiquetas