4

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? – MinhTri Apr 20 '16 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? – Aleksandar Đorđević Apr 20 '16 at 16:52
  • I copied your first line of code, changed the user id. That's it. Did you try with other themes? – MinhTri Apr 20 '16 at 16:55
  • Did you ever figure this out? – JacobTheDev Jun 5 '16 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. – Aleksandar Đorđević Jul 23 '16 at 14:36
2

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".

-1

Try this one..

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

Example:

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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