WordPress.org

Make WordPress Core

Ticket #34635: 34635.diff

File 34635.diff, 4.3 KB (added by joemcgill, 20 months ago)
  • src/wp-includes/js/media-editor.js

    diff --git src/wp-includes/js/media-editor.js src/wp-includes/js/media-editor.js
    index e972f6b..8594d23 100644
     
    5151                        var link, linkUrl, size, sizes, fallbacks,
    5252                                defaultProps = wp.media.view.settings.defaultProps;
    5353
    54                         // Final fallbacks run after all processing has been completed.
    55                         fallbacks = function( props ) {
    56                                 // Generate alt fallbacks and strip tags.
    57                                 if ( 'image' === props.type && ! props.alt ) {
    58                                         if ( props.caption ) {
    59                                                 props.alt = props.caption;
    60                                         } else if ( props.title !== props.url ) {
    61                                                 props.alt = props.title;
    62                                         } else {
    63                                                 props.alt = '';
    64                                         }
    65 
    66                                         props.alt = props.alt.replace( /<\/?[^>]+>/g, '' );
    67                                         props.alt = props.alt.replace( /[\r\n]+/g, ' ' );
    68                                 }
    69 
    70                                 return props;
    71                         };
    72 
    7354                        props = props ? _.clone( props ) : {};
    7455
    7556                        if ( attachment && attachment.type ) {
     
    8768
    8869                        // All attachment-specific settings follow.
    8970                        if ( ! attachment ) {
    90                                 return fallbacks( props );
     71                                return props;
    9172                        }
    9273
    9374                        props.title = props.title || attachment.title;
     
    123104                                props.rel = props.rel || 'attachment wp-att-' + attachment.id;
    124105                        }
    125106
    126                         return fallbacks( props );
     107                        return props;
    127108                },
    128109                /**
    129110                 * Create link markup that is suitable for passing to the editor
  • src/wp-includes/media.php

    diff --git src/wp-includes/media.php src/wp-includes/media.php
    index 99adf74..90331aa 100644
    function wp_get_attachment_image($attachment_id, $size = 'thumbnail', $icon = fa 
    866866                $default_attr = array(
    867867                        'src'   => $src,
    868868                        'class' => "attachment-$size_class size-$size_class",
    869                         'alt'   => trim(strip_tags( get_post_meta($attachment_id, '_wp_attachment_image_alt', true) )), // Use Alt field first
     869                        'alt'   => trim( strip_tags( get_post_meta( $attachment_id, '_wp_attachment_image_alt', true ) ) ),
    870870                );
    871                 if ( empty($default_attr['alt']) )
    872                         $default_attr['alt'] = trim(strip_tags( $attachment->post_excerpt )); // If not, Use the Caption
    873                 if ( empty($default_attr['alt']) )
    874                         $default_attr['alt'] = trim(strip_tags( $attachment->post_title )); // Finally, use the title
    875871
    876872                $attr = wp_parse_args( $attr, $default_attr );
    877873
  • tests/phpunit/tests/media.php

    diff --git tests/phpunit/tests/media.php tests/phpunit/tests/media.php
    index b4787e6..7209f5e 100644
    EOF; 
    916916        }
    917917
    918918        /**
     919         * Tests the default output of `wp_get_attachment_image()`.
     920         * @ticket 34635
     921         */
     922        function test_wp_get_attachment_image_defaults() {
     923                $image = image_downsize( self::$large_id, 'thumbnail' );
     924                $expected = sprintf( '<img width="%1$d" height="%2$d" src="%3$s" class="attachment-thumbnail size-thumbnail" alt="" />', $image[1], $image[2], $image[0] );
     925
     926                $this->assertEquals( $expected, wp_get_attachment_image( self::$large_id ) );
     927        }
     928
     929        /**
     930         * Test that `wp_get_attachment_image()` returns a proper alt value.
     931         * @ticket 34635
     932         */
     933        function test_wp_get_attachment_image_with_alt() {
     934                // Add test alt metadata.
     935                update_post_meta( self::$large_id, '_wp_attachment_image_alt', 'Some very clever alt text', true );
     936
     937                $image = image_downsize( self::$large_id, 'thumbnail' );
     938                $expected = sprintf( '<img width="%1$d" height="%2$d" src="%3$s" class="attachment-thumbnail size-thumbnail" alt="Some very clever alt text" />', $image[1], $image[2], $image[0] );
     939
     940                $this->assertEquals( $expected, wp_get_attachment_image( self::$large_id ) );
     941
     942                // Cleanup.
     943                update_post_meta( self::$large_id, '_wp_attachment_image_alt', '', true );
     944        }
     945
     946        /**
    919947         * @ticket 33878
    920948         */
    921949        function test_wp_get_attachment_image_url() {
    EOF; 
    18081836                $month = date( 'm' );
    18091837
    18101838                $expected = '<img width="999" height="999" src="http://' . WP_TESTS_DOMAIN . '/wp-content/uploads/' . $year . '/' . $month . '/test-image-testsize-999x999.png"' .
    1811                         ' class="attachment-testsize size-testsize" alt="test-image-large.png"' .
     1839                        ' class="attachment-testsize size-testsize" alt=""' .
    18121840                        ' srcset="http://' . WP_TESTS_DOMAIN . '/wp-content/uploads/' . $year . '/' . $month . '/test-image-testsize-999x999.png 999w,' .
    18131841                                ' http://' . WP_TESTS_DOMAIN . '/wp-content/uploads/' . $year . '/' . $month . '/test-image-large-150x150.png 150w"' .
    18141842                                ' sizes="(max-width: 999px) 100vw, 999px" />';