Make WordPress Core


Ignore:
Timestamp:
04/07/2021 12:59:18 AM (4 years ago)
Author:
peterwilsoncc
Message:

Media: Do not lazy load hidden images or embeds.

Improve the check for sourceless or dimensionless media when determining if the lazy loading attribute should be added to iframes and images. Never include the lazy loading attribute on embeds of WordPress posts as the iframe is initially hidden.

Including loading="lazy" on initially hidden iframes and images can prevent the media from loading in some browsers.

Props adamsilverstein, fabianpimminger, flixos90, johnbillion, jonkastonka, joyously, peterwilsoncc, SergeyBiryukov, SirStuey, swissspidy.
Fixes #52768.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/media.php

    r50448 r50682  
    29422942        $iframe = '<iframe src="https://www.example.com" width="640" height="360"></iframe>';
    29432943        add_filter( 'wp_iframe_tag_add_loading_attr', '__return_false' );
     2944        $iframe = wp_iframe_tag_add_loading_attr( $iframe, 'test' );
     2945
     2946        $this->assertNotContains( ' loading=', $iframe );
     2947    }
     2948
     2949    /**
     2950     * @ticket 52768
     2951     */
     2952    function test_wp_iframe_tag_add_loading_attr_skip_wp_embed() {
     2953        $iframe   = '<iframe src="https://www.example.com" width="640" height="360"></iframe>';
     2954        $fallback = '<blockquote>Fallback content.</blockquote>';
     2955        $iframe   = wp_filter_oembed_result( $fallback . $iframe, (object) array( 'type' => 'rich' ), 'https://www.example.com' );
     2956        $iframe   = wp_iframe_tag_add_loading_attr( $iframe, 'test' );
    29442957
    29452958        $this->assertNotContains( ' loading=', $iframe );
Note: See TracChangeset for help on using the changeset viewer.