WordPress.org

Make WordPress Core

Ticket #22354: 22354.fixes-plus-formatting.patch

File 22354.fixes-plus-formatting.patch, 4.1 KB (added by Viper007Bond, 7 years ago)

The fix plus a fix to allow https:// default image URLs as well as bringing the whole function up to modern coding standards

  • wp-includes/pluggable.php

     
    15821582 * @return string <img> tag for the user's avatar
    15831583*/
    15841584function get_avatar( $id_or_email, $size = '96', $default = '', $alt = false ) {
    1585         if ( ! get_option('show_avatars') )
     1585        if ( ! get_option( 'show_avatars' ) )
    15861586                return false;
    15871587
    1588         if ( false === $alt)
     1588        if ( false === $alt ) {
    15891589                $safe_alt = '';
    1590         else
     1590        } else {
    15911591                $safe_alt = esc_attr( $alt );
     1592        }
    15921593
    1593         if ( !is_numeric($size) )
     1594        if ( ! is_numeric( $size ) )
    15941595                $size = '96';
    15951596
    15961597        $email = '';
    1597         if ( is_numeric($id_or_email) ) {
     1598        if ( is_numeric( $id_or_email ) ) {
    15981599                $id = (int) $id_or_email;
    15991600                $user = get_userdata($id);
    1600                 if ( $user )
     1601                if ( $user ) {
    16011602                        $email = $user->user_email;
    1602         } elseif ( is_object($id_or_email) ) {
     1603                }
     1604        } elseif ( is_object( $id_or_email ) ) {
    16031605                // No avatar for pingbacks or trackbacks
    16041606                $allowed_comment_types = apply_filters( 'get_avatar_comment_types', array( 'comment' ) );
    16051607                if ( ! empty( $id_or_email->comment_type ) && ! in_array( $id_or_email->comment_type, (array) $allowed_comment_types ) )
    16061608                        return false;
    16071609
    1608                 if ( !empty($id_or_email->user_id) ) {
     1610                if ( ! empty( $id_or_email->user_id ) ) {
    16091611                        $id = (int) $id_or_email->user_id;
    1610                         $user = get_userdata($id);
    1611                         if ( $user)
     1612                        $user = get_userdata( $id );
     1613                        if ( $user) {
    16121614                                $email = $user->user_email;
    1613                 } elseif ( !empty($id_or_email->comment_author_email) ) {
     1615                        }
     1616                } elseif ( !empty( $id_or_email->comment_author_email ) ) {
    16141617                        $email = $id_or_email->comment_author_email;
    16151618                }
    16161619        } else {
    16171620                $email = $id_or_email;
    16181621        }
    16191622
    1620         if ( empty($default) ) {
    1621                 $avatar_default = get_option('avatar_default');
    1622                 if ( empty($avatar_default) )
     1623        if ( empty( $default ) ) {
     1624                $avatar_default = get_option( 'avatar_default' );
     1625                if ( empty( $avatar_default ) ) {
    16231626                        $default = 'mystery';
    1624                 else
     1627                } else {
    16251628                        $default = $avatar_default;
     1629                }
    16261630        }
    16271631
    1628         if ( !empty($email) )
     1632        if ( ! empty( $email ) )
    16291633                $email_hash = md5( strtolower( trim( $email ) ) );
    16301634
    16311635        if ( is_ssl() ) {
    16321636                $host = 'https://secure.gravatar.com';
    16331637        } else {
    1634                 if ( !empty($email) )
     1638                if ( ! empty( $email ) ) {
    16351639                        $host = sprintf( "http://%d.gravatar.com", ( hexdec( $email_hash[0] ) % 2 ) );
    1636                 else
     1640                } else {
    16371641                        $host = 'http://0.gravatar.com';
     1642                }
    16381643        }
    16391644
    1640         if ( 'mystery' == $default )
     1645        if ( 'mystery' == $default ) {
    16411646                $default = "$host/avatar/ad516503a11cd5ca435acc9bb6523536?s={$size}"; // ad516503a11cd5ca435acc9bb6523536 == md5('unknown@gravatar.com')
    1642         elseif ( 'blank' == $default )
    1643                 $default = includes_url('images/blank.gif');
    1644         elseif ( !empty($email) && 'gravatar_default' == $default )
     1647        } elseif ( empty( $email ) && 'blank' == $default ) {
     1648                $default = includes_url( 'images/blank.gif' );
     1649        } elseif ( ! empty( $email ) && 'gravatar_default' == $default ) {
    16451650                $default = '';
    1646         elseif ( 'gravatar_default' == $default )
     1651        } elseif ( 'gravatar_default' == $default ) {
    16471652                $default = "$host/avatar/?s={$size}";
    1648         elseif ( empty($email) )
     1653        } elseif ( empty( $email ) ) {
    16491654                $default = "$host/avatar/?d=$default&amp;s={$size}";
    1650         elseif ( strpos($default, 'http://') === 0 )
     1655        } elseif ( strpos( $default, 'http://' ) === 0 || strpos( $default, 'https://' ) === 0 ) {
    16511656                $default = add_query_arg( 's', $size, $default );
     1657        }
    16521658
    1653         if ( !empty($email) ) {
     1659        if ( ! empty( $email ) ) {
    16541660                $out = "$host/avatar/";
    16551661                $out .= $email_hash;
    16561662                $out .= '?s='.$size;
    16571663                $out .= '&amp;d=' . urlencode( $default );
    16581664
    1659                 $rating = get_option('avatar_rating');
    1660                 if ( !empty( $rating ) )
     1665                $rating = get_option( 'avatar_rating' );
     1666                if ( ! empty( $rating ) ) {
    16611667                        $out .= "&amp;r={$rating}";
     1668                }
    16621669
    16631670                $avatar = "<img alt='{$safe_alt}' src='{$out}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
    16641671        } else {
    16651672                $avatar = "<img alt='{$safe_alt}' src='{$default}' class='avatar avatar-{$size} photo avatar-default' height='{$size}' width='{$size}' />";
    16661673        }
    16671674
    1668         return apply_filters('get_avatar', $avatar, $id_or_email, $size, $default, $alt);
     1675        return apply_filters( 'get_avatar', $avatar, $id_or_email, $size, $default, $alt );
    16691676}
    16701677endif;
    16711678