Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

Is there a way o changing user's avatar without plugins? Why there's no "Avatar Upload" section in Users > Your Profile?

I can't use a plugin. Am I blind or being forced to use Gravatar? ;/

share|improve this question
    
Is there a reason you can't use plugins? Is this a wordpress.com blog? (Use @Jan in your reply so I get a notification) –  Jan Fabry Jan 24 '11 at 15:59
    
@Jan: the reason is I'm helping my buddy to build his own free theme. And one of our goals is to make it plugin-free too. –  Wordpressor Jan 24 '11 at 20:57
    
Of course, you can always include all code from a plugin in your template too (via the functions.php file). Is that still "plugin-free" in your definition? –  Jan Fabry Jan 25 '11 at 7:24
add comment

4 Answers

up vote 6 down vote accepted

Avatars are meant to be controlled by the user, not by you. So yes, in a way, you're being forced to use the Gravatar service. But remember, it gives the user the ability to use the same avatar anywhere, and you can always restrict the display of a gravatar based on content ratings (G, PG, PG-13, R).

Gravatar is a hosted service, which is why there's no "Upload Avatar" section in the profile.

You say you "can't use a plugin," but really that's the only way you can add features. If you want to use something other than Gravatar, you'll need to load a plug-in to support it. There are a few plug-ins that support local avatars:

Otherwise, I recommend you educate your users on what Gravatars are and how to use them.

share|improve this answer
    
That's TOTALLY WRONG! I don't have to educate my users, because I want to change admin's avatar etc. And I'm not able to. And as far as I remember there was an option like this? ;/ That's forcing me to use some strange site that I don't even want to use. That's STRANGE. Imagine I want to set up a blog for a local business network without internet access (security reasons, restricted data) etc. And it's not even possible without a plugin. What a shame. –  Wordpressor Jan 24 '11 at 15:23
    
@Wordpressor: By "that's totally wrong", do you mean EAMann's answer is wrong, or is it the situation you don't agree with? Gravatar is owned by Automattic, the company of Matt Mullenweg, who decides what goes in WordPress. That's probably the reason why they only support it out of the box, and other methods are delegated to plugins. –  Jan Fabry Jan 24 '11 at 15:58
    
@Wordpressor: if you run it inside a company you probably would also want 1 LDAP for security purposes and single sign on. That is your key: you would one location for the "user image" also. Outside of the app. –  edelwater Jan 24 '11 at 17:07
2  
@Wordpressor For the context [ Decisions not Options ](wordpress.org/about/philosophy) is one of cornerstones of how are things done in WordPress. Defaulting to gravatars is decision that makes enough sense, is flexible enough and promotes affiliated service. And when decision is made it is usually up to plugins to provide tweaks or alternatives. –  Rarst Jan 24 '11 at 21:19
1  
@Wordpressor Please sing the random lyrics of Hello Dolly. It will make you feel better ;) –  Michal Mau Jan 25 '11 at 4:11
show 2 more comments

I noticed that it depends on which theme is activated. No option in Mantra theme for example, but there is an option in the buddypress default theme.

share|improve this answer
add comment

I know that on one project site, I was able to create a field on the user profile editor page for accepting an image path(uploaded through the media page if I recall right) that was able to be used for avatars. No plugins needed.

share|improve this answer
add comment

If you are asking how to replace the default gravatar with one of your own, you can put this code in the functions.php (or better yet the custom-functions.php if your theme supports it).

add_filter( 'avatar_defaults', 'customgravatar' );

function customgravatar ($avatar_defaults) {
$myavatar = get_home_url('Template_directory') . '/images/mycustomgravatar.jpg';
$avatar_defaults[$myavatar] = "My Custom Logo";
return $avatar_defaults;
}

Create an image file and upload it to the image directory for your site. The "My Custom Logo" is the label for the option in the Discussion section of your Dashboard. This way any user who doesn't have a gravatar will get the logo of your site instead.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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