get_avatar

Definition:
function get_avatar( $id_or_email, $size = '96', $default = '', $alt = false ) {}

Retrieve the avatar for a user who provided a user ID or email address.

Parameters

  • int|string|object $id_or_email: A user ID, email address, or comment object
  • int $size: Size of the avatar image
  • string $default: URL to a default image to use if no avatar is available
  • string $alt: Alternate text to use in image tag. Defaults to blank

Return values

returns:<img> tag for the user’s avatar

Defined filters

  • get_avatar_comment_types
    apply_filters( 'get_avatar_comment_types', array( 'comment' )

Source code

function get_avatar( $id_or_email, $size = '96', $default = '', $alt = false ) {

	if ( ! get_option('show_avatars') )

		return false;



	if ( false === $alt)

		$safe_alt = '';

	else

		$safe_alt = esc_attr( $alt );



	if ( !is_numeric($size) )

		$size = '96';



	$email = '';

	if ( is_numeric($id_or_email) ) {

		$id = (int) $id_or_email;

		$user = get_userdata($id);

		if ( $user )

			$email = $user->user_email;

	} elseif ( is_object($id_or_email) ) {

		// No avatar for pingbacks or trackbacks

		$allowed_comment_types = apply_filters( 'get_avatar_comment_types', array( 'comment' ) );

		if ( ! empty( $id_or_email->comment_type ) && ! in_array( $id_or_email->comment_type, (array) $allowed_comment_types ) )

			return false;



		if ( !empty($id_or_email->user_id) ) {

			$id = (int) $id_or_email->user_id;

			$user = get_userdata($id);

			if ( $user)

				$email = $user->user_email;

		} elseif ( !empty($id_or_email->comment_author_email) ) {

			$email = $id_or_email->comment_author_email;

		}

	} else {

		$email = $id_or_email;

	}



	if ( empty($default) ) {

		$avatar_default = get_option('avatar_default');

		if ( empty($avatar_default) )

			$default = 'mystery';

		else

			$default = $avatar_default;

	}



	if ( !empty($email) )

		$email_hash = md5( strtolower( $email ) );



	if ( is_ssl() ) {

		$host = 'https://secure.gravatar.com';

	} else {

		if ( !empty($email) )

			$host = sprintf( "http://%d.gravatar.com", ( hexdec( $email_hash[0] ) % 2 ) );

		else

			$host = 'http://0.gravatar.com';

	}



	if ( 'mystery' == $default )

		$default = "$host/avatar/ad516503a11cd5ca435acc9bb6523536?s={$size}"; // ad516503a11cd5ca435acc9bb6523536 == md5('unknown@gravatar.com')

1188

No comments yet... Be the first to leave a reply!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: