WordPress.org

Make WordPress Core

Ticket #38768: 38768.7.diff

File 38768.7.diff, 3.6 KB (added by afercia, 2 years ago)
  • src/wp-includes/general-template.php

     
    888888
    889889        // We have a logo. Logo is go.
    890890        if ( $custom_logo_id ) {
     891                $custom_logo_attr = array(
     892                        'class'    => 'custom-logo',
     893                        'itemprop' => 'logo',
     894                );
     895
     896                /*
     897                 * If the logo alt attribute is empty, get the site title and explicitly
     898                 * pass it to the attributes used by wp_get_attachment_image().
     899                 */
     900                $image_alt = get_post_meta( $custom_logo_id, '_wp_attachment_image_alt', true );
     901                if ( empty( $image_alt ) ) {
     902                        $custom_logo_attr['alt'] = get_bloginfo( 'name', 'display' );
     903                }
     904
     905                /*
     906                 * If the alt attribute is not empty, there's no need to explicitly pass
     907                 * it because wp_get_attachment_image() already adds the alt attribute.
     908                 */
    891909                $html = sprintf( '<a href="%1$s" class="custom-logo-link" rel="home" itemprop="url">%2$s</a>',
    892910                        esc_url( home_url( '/' ) ),
    893                         wp_get_attachment_image( $custom_logo_id, 'full', false, array(
    894                                 'class'    => 'custom-logo',
    895                                 'itemprop' => 'logo',
    896                         ) )
     911                        wp_get_attachment_image( $custom_logo_id, 'full', false, $custom_logo_attr )
    897912                );
    898913        }
    899914
  • tests/phpunit/tests/general/template.php

     
    307307                switch_to_blog( $blog_id );
    308308
    309309                $this->_set_custom_logo();
     310
     311                $custom_logo_attr = array(
     312                        'class'    => 'custom-logo',
     313                        'itemprop' => 'logo',
     314                );
     315
     316                // If the logo alt attribute is empty, use the site title.
     317                $image_alt = get_post_meta( $this->custom_logo_id, '_wp_attachment_image_alt', true );
     318                if ( empty( $image_alt ) ) {
     319                        $custom_logo_attr['alt'] = get_bloginfo( 'name', 'display' );
     320                }
     321
    310322                $home_url = get_home_url( $blog_id, '/' );
    311                 $image    = wp_get_attachment_image( $this->custom_logo_id, 'full', false, array(
    312                         'class'     => 'custom-logo',
    313                         'itemprop'  => 'logo',
    314                 ) );
     323                $image    = wp_get_attachment_image( $this->custom_logo_id, 'full', false, $custom_logo_attr );
    315324                restore_current_blog();
    316325
    317326                $expected_custom_logo =  '<a href="' . $home_url . '" class="custom-logo-link" rel="home" itemprop="url">' . $image . '</a>';
     
    328337                the_custom_logo();
    329338
    330339                $this->_set_custom_logo();
     340
     341                $custom_logo_attr = array(
     342                        'class'    => 'custom-logo',
     343                        'itemprop' => 'logo',
     344                );
     345
     346                // If the logo alt attribute is empty, use the site title.
     347                $image_alt = get_post_meta( $this->custom_logo_id, '_wp_attachment_image_alt', true );
     348                if ( empty( $image_alt ) ) {
     349                        $custom_logo_attr['alt'] = get_bloginfo( 'name', 'display' );
     350                }
     351
     352                $image = wp_get_attachment_image( $this->custom_logo_id, 'full', false, $custom_logo_attr );
     353
     354                $this->expectOutputString( '<a href="http://' . WP_TESTS_DOMAIN . '/" class="custom-logo-link" rel="home" itemprop="url">' . $image . '</a>' );
     355                the_custom_logo();
     356        }
     357
     358        /**
     359         * @group custom_logo
     360         * @ticket 38768
     361         */
     362        function test_the_custom_logo_with_alt() {
     363                $this->_set_custom_logo();
     364
     365                $image_alt = 'My alt attribute';
     366
     367                update_post_meta( $this->custom_logo_id, '_wp_attachment_image_alt', $image_alt );
     368
    331369                $image = wp_get_attachment_image( $this->custom_logo_id, 'full', false, array(
    332                         'class'     => 'custom-logo',
    333                         'itemprop'  => 'logo',
     370                        'class'    => 'custom-logo',
     371                        'itemprop' => 'logo',
    334372                ) );
    335373
    336374                $this->expectOutputString( '<a href="http://' . WP_TESTS_DOMAIN . '/" class="custom-logo-link" rel="home" itemprop="url">' . $image . '</a>' );