WordPress.org

Make WordPress Core

Ticket #31004: add-srcset-to-avatars.diff

File add-srcset-to-avatars.diff, 2.3 KB (added by georgestephanis, 6 years ago)
  • src/wp-includes/link-template.php

     
    34013401                'rating'         => get_option( 'avatar_rating' ),
    34023402                'scheme'         => null,
    34033403                'processed_args' => null, // if used, should be a reference
     3404                'srcset_array'   => array(),
    34043405        ) );
    34053406
    34063407        if ( is_numeric( $args['size'] ) ) {
     
    35213522                'r' => $args['rating'],
    35223523        );
    35233524
     3525        $url_args = array_filter( $url_args );
    35243526        $url = sprintf( 'http://%d.gravatar.com/avatar/%s', $gravatar_server, $email_hash );
    35253527
    35263528        $url = add_query_arg(
    3527                 rawurlencode_deep( array_filter( $url_args ) ),
     3529                rawurlencode_deep( $url_args ),
    35283530                set_url_scheme( $url, $args['scheme'] )
    35293531        );
    35303532
     
    35393541         */
    35403542        $args['url'] = apply_filters( 'get_avatar_url', $url, $id_or_email, $args );
    35413543
     3544        if ( isset( $args['size'] ) ) {
     3545                if ( ! is_array( $args['srcset_array'] ) ) {
     3546                        $args['srcset_array'] = array();
     3547                }
     3548                $srcset_sizes = array(
     3549                        '1.5x' => 1.5,
     3550                        '2x'   => 2,
     3551                        '3x'   => 3,
     3552                );
     3553                foreach ( $srcset_sizes as $size_label => $multiplier ) {
     3554                        $srcset_url_args = wp_parse_args( array(
     3555                                's' => ceil( $args['size'] * $multiplier ),
     3556                        ), $url_args );
     3557                        $args['srcset_array'][ $size_label ] = add_query_arg(
     3558                                        rawurlencode_deep( $srcset_url_args ),
     3559                                        $args['url']
     3560                                );
     3561                }
     3562        }
     3563
    35423564        /**
    35433565         * Filter the avatar data.
    35443566         *
  • src/wp-includes/pluggable.php

     
    21622162
    21632163        $url = $args['url'];
    21642164
     2165        $srcset = esc_url( $url ) . ' 1x';
     2166        foreach ( $args['srcset_array'] as $srcset_size => $srcset_url ) {
     2167                $srcset .= ', ' . esc_url( $srcset_url ) . " {$srcset_size}";
     2168        }
     2169
    21652170        if ( ! $url || is_wp_error( $url ) ) {
    21662171        return false;
    21672172        }
     
    21812186        }
    21822187
    21832188        $avatar = sprintf(
    2184                 "<img alt='%s' src='%s' class='%s' height='%d' width='%d' />",
     2189                "<img alt='%s' src='%s' srcset='%s' class='%s' height='%d' width='%d' />",
    21852190                esc_attr( $args['alt'] ),
    21862191                esc_url( $url ),
     2192                esc_attr( $srcset ),
    21872193                esc_attr( join( ' ', $class ) ),
    21882194                (int) $args['size'],
    21892195                (int) $args['size']