User Photo

Allows a user to associate a photo with their account and for this photo to be displayed in their posts and comments.

Author:Weston Ruter (profile at wordpress.org)
WordPress version required:3.0.5
WordPress version tested:4.6.18
Plugin version:0.9.10
Added to WordPress repository:17-12-2007
Last updated:31-05-2017
Warning! This plugin has not been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.
Rating, %:86
Rated by:20
Plugin URI:http://wordpress.org/extend/plugins/user-phot...
Total downloads:483 039
Active installs:6 000+
plugin download
Click to start download

Allows a user to associate a profile photo with their account through their “Your Profile” page. Admins may
add a user profile photo by accessing the “Edit User” page. Uploaded images are resized to fit the dimensions specified
on the options page; a thumbnail image correspondingly is also generated.
User photos may be displayed within a post or a comment to
help identify the author. New template tags introduced are:

  • userphoto_the_author_photo()
  • userphoto_the_author_thumbnail()
  • userphoto_comment_author_photo()
  • userphoto_comment_author_thumbnail()

Important: all of these “template tags” must appear inside of PHP script blocks (see examples below).
The first two should be placed in the posts loop near the_author(), and the second two in the comments
loop near comment_author() (or their respective equivalents). Furthermore, userphoto_the_author_photo()
and userphoto_the_author_thumbnail() may be called anywhere (i.e. sidebar) if $authordata is set.

The output of these template tags may be modified by passing four parameters: $before, $after, $attributes, and $default_src,
as in: userphoto_the_author_photo($before, $after, $attributes, $default_src).
If the user photo exists (or $default_src is supplied), then the text provided in the $before and $after parameters is respectively
prefixed and suffixed to the generated img tag (a common pattern in WordPress). If attributes are provided in the $attributes
parameter, then they are returned as attributes of the generated img element. For example: userphoto_the_author_photo('', '', array(style => 'border:0'))
Just added in 0.8.1 release are these two new template tags:

  • userphoto($user, $before = '', $after = '', $attributes = array(), $default_src = '')
  • userphoto_thumbnail($user, $before = '', $after = '', $attributes = array(), $default_src = '')

By using these, it is uneccessary to set the global $authordata to display a photo. Just pass $authordata, $curauth or
whatever variable you have which contains the user object, or (as of version 0.9), pass in a user ID or a user login name.

Here’s an example that shows a few ways of inserting a user’s photo into the post loop:
//this will display the user’s avatar if they don’t have a user photo,

<?php while (have_posts()) : the_post(); ?>
    <div class="post" id="post-<?php the_ID(); ?>">
        <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
        <div class="meta">
            <?php the_time('F jS, Y') ?>
            by <?php the_author() ?>

            <!-- displays the user's photo and then thumbnail -->
            <?php userphoto_the_author_photo() ?>
            <?php userphoto_the_author_thumbnail() ?>

            <!-- the following two do the same since $authordata populated -->
            <?php userphoto($authordata) ?>
            <?php userphoto_thumbnail($authordata) ?>

            <!-- and this is how to customize the output -->
            <?php userphoto_the_author_photo(
                '<b>Photo of me: ',
                '</b>',
                array('class' => 'photo'),
                get_template_directory_uri() . '/nophoto.jpg'
            ) ?>
        </div>
        <?php the_content('Read the rest of this entry &raquo;'); ?>
    </div>
<?php endwhile; ?>

If you want to display the user’s photo in the sidebar, just get the user ID or object and pass it into userphoto() or userphoto_thumbnail() like this:

<?php userphoto($posts[0]->post_author); ?>

If you want to display a user’s photo their author page, you may do this:

<?php userphoto($wp_query->get_queried_object()) ?>

In version 0.9 the boolean function userphoto_exists($user) has been introduced which returns true if the user has a photo and false if they do not.
Argument $user may be user object, ID, or login name. This function can be used along with avatars:

<?php
if(userphoto_exists($user))
    userphoto($user);
else
    echo get_avatar($user->ID, 96);
?>

Or if the new “Serve Avatar as Fallback” option is turned on, then the avatar will be served by any of the regular calls to display the user photo:

<?php
//this will display the user's avatar if they don't have a user photo,
//  and if "Serve Avatar as Fallback" is turned on
userphoto($user);
?>

Additionally, all of the regular function calls to display the user photo may be done away with alltogether if the new “Override Avatar with User Photo”
option is enabled:

<?php
//both will display the user photo if it exists
//  and if "Override Avatar with User Photo" is turned on
echo get_avatar($user_id);
echo get_avatar($user->user_email);
?>

Both options “Serve Avatar as Fallback” and “Override Avatar with User Photo” require that the ‘Avatar Display’ setting under Discussion be set to “Show”.

Uploaded images may be moderated by administrators via the “Edit User” page.

Localizations included for Spanish, German, Dutch, Polish, Russian, French, Hungarian, Brazilian Portuguese, Italian, and Catalan.

If you value this plugin, please donate to ensure that it may continue to be maintained and improved.


Screenshots
ChangeLog