How to Use Custom Gravatars Icons in WordPress

How to customise the default Gravatars in Wordpress 2.7 using built in WordPress filters to show your own set of custom gravatars images.

By Tim Trott | WordPress | December 27, 2008

When Gravatar support was added to WordPress the default "mystery man" was the only graphic available unless the commenter had previously signed up for Gravatar. Soon after that, there was an option to specify a default image, followed by the Identicon, Wavatar and MonsterID. In WordPress 2.7, the new comments overhaul does not allow custom Gravatars to be defined, since they are all wrapped up into wp_list_comments.

Let's look at the original method for showing Gravatars:

php
if(function_exists('get_avatar')) 
{
  echo get_avatar($comment, $size = '32', $default = get_bloginfo('template_directory') . '/images/gravatar.png');
} 

This was a nice simple template function where you pass in the comment (from within the loop), the size for the avatar in pixels, and a filename for the default image.

Since we can no longer make a direct call to get_avatar, we must use a different approach. Thankfully the good guys at WordPress made a nice filter that we can hook into.

php
function addgravatar($avatar_defaults) 
{
  $avatar = get_bloginfo('template_directory') . '/images/gravatar.png';
  $avatar_defaults[$avatar] = 'Tutorial Gravatar';
  return $avatar_defaults;
}
add_filter('avatar_defaults', 'addgravatar');

The filter is called avatar_defaults and can be used to add a new filename to the array of available filenames. This example assumes that the image is called gravatar.png and is located inside the images folder of your current theme. If this isn't the case you can simply amend the filename. We also need to give the avatar a name; in this case, I called it "Your Paranormal" as this is the site I am writing it for. The last line adds the new function to the filters list.

Now when you go into the WordPress administration screen under Discussion you will see your new default avatar listed and it will be selectable.

Wordpress custom gravatars
Wordpress custom gravatars

There, isn't that nicer than a hard-coded hack in the theme?

Was this article helpful to you?
 

Related ArticlesThese articles may also be of interest to you

CommentsShare your thoughts in the comments below

If you enjoyed reading this article, or it helped you in some way, all I ask in return is you leave a comment below or share this page with your friends. Thank you.

This post has 5 comment(s). Why not join the discussion!

We respect your privacy, and will not make your email public. Learn how your comment data is processed.

  1. SA

    On Wednesday 30th of December 2009, Sandrine said

    Great !! Thanks for sharing, it's very useful.

  2. BE

    On Wednesday 27th of May 2009, Ben said

    Where is the best place to add this filter? functions.php?

    1. Tim Trott

      On Thursday 4th of June 2009, Tim Trott  Post Author replied

      Yes, functions.php is the best place to place the code.

  3. MA

    On Monday 26th of January 2009, Matt Algren said

    Thanks for the tip! You might want to warn people that if they cut/paste your solution they'll have to manually replace all the curly apostrophes for normal ones.

    Not that I just spent an hour pulling my hair out. Not me.

    No siree.

  4. Tim Trott

    On Monday 26th of January 2009, Tim Trott  Post Author said

    Very good point Matt, thanks for pointing it out.