I want to add bootstrap img-responsive and img-rounded classes to avatar image when displaying one. But for some reason the class is not displayed when using get_avatar.

By WordPress codex there is an attributes list that you can use in get_avatar to alter the function but my doesn't pickup class array list.

Here is current code that i use.

get_avatar( $current_user->user_email, 128, null, null, array('class' => array('img-responsive', 'img-rounded') ) );

By explanation last parameter is arguments array in which you can use size , height , width etc... among those is class which can be array or string.

So i tried a few combinations

$args = array(
   'class' => 'img-responsive img-rounded'
get_avatar( $current_user->user_email, 128, null, null, $args );

I also tried

$args = array(
 'class' => array( 'img-responsive', 'img-rounded');

But for some reason class is not accepted.

  • Your code works fine for me. Are there any plugins or something using get_avatar filter?
    – Minh Tri
    Commented Apr 20, 2016 at 16:19
  • Nothing that can make a problem to the function, i searched through the whole project and only plugin that uses get_avatar is jetpack plugin but i doubt that this can make a problem. What combination did you tried and works?
    – lonerunner
    Commented Apr 20, 2016 at 16:52
  • I copied your first line of code, changed the user id. That's it. Did you try with other themes?
    – Minh Tri
    Commented Apr 20, 2016 at 16:55
  • Did you ever figure this out? Commented Jun 5, 2016 at 19:05
  • No @Rev i didn't, now when i have some free time again i continue to work on my theme and stumbled on this problem, i came back here to see for any other answers but nothing. I still can't figure out why it's not accepting the args.
    – lonerunner
    Commented Jul 23, 2016 at 14:36

3 Answers 3


I had this problem, too. Here's the solution for version 4.7.3 if anyone comes across this.

get_avatar( $id_or_email = get_the_author_meta( 'user_email' ), $size = '60', $default, $alt, $args = array( 'class' => array( 'd-block', 'mx-auto' ) ) );

or shorter version

get_avatar( get_the_author_meta( 'user_email' ), '60', $default, $alt, array( 'class' => array( 'd-block', 'mx-auto' ) ) );

For some reason, all the parameters have to be present or it doesn't work.

This method, unlike the functions.php method, will not alter get_avatar globally. So you can have different classes like "post-author" or "comments-author".


Try this one..

<?php echo get_avatar( get_the_author_meta('ID'), $args['image_size'], '', 'alt', array('class' => 'avatar_class') ); ?>


<?php echo get_avatar( get_the_author_meta('ID'), $args['96'], '', 'avatar', array('class' => 'myclass') ); ?>

Is there any chance you are using the plugin WP User Avatar. I have just run into this where it seems that it is filtering the get_avatar function but not passing the last $args argument through that would contain the class info.

I'm going to start looking for a different solution to uploading custom avatars...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.