Opened 2 years ago
Closed 2 years ago
#56927 closed defect (bug) (duplicate)
Post Featured Image always lazy loaded in T22 and T23 Single template
Reported by: | RavanH | Owned by: | |
---|---|---|---|
Milestone: | Priority: | normal | |
Severity: | normal | Version: | |
Component: | Editor | Keywords: | |
Focuses: | Cc: |
Description
To my surprise, in Twenty Twenty-Two and Twenty-Three the featured post images are always lazy loaded. This, in spite of the fact that the featured image is the frist image on the screen, so ignoring the wp_omit_loading_attr_threshold
of 1.
I tried returning false on the wp_lazy_loading_enabled
filter but that did not have any effect either.
It appears that the Post Featured Image block, using get_the_post_thumbnail ignores both wp_lazy_loading_enabled
filter and wp_omit_loading_attr_threshold
.
The lines in question, starting at line 191 in wp-includes/post-thumbnail-template.php:
// Get the 'loading' attribute value to use as default, taking precedence over the default from // `wp_get_attachment_image()`. $loading = wp_get_loading_attr_default( 'the_post_thumbnail' ); // Add the default to the given attributes unless they already include a 'loading' directive. if ( empty( $attr ) ) { $attr = array( 'loading' => $loading ); } elseif ( is_array( $attr ) && ! array_key_exists( 'loading', $attr ) ) { $attr['loading'] = $loading; } elseif ( is_string( $attr ) && ! preg_match( '/(^|&)loading=/', $attr ) ) { $attr .= '&loading=' . $loading; } $html = wp_get_attachment_image( $post_thumbnail_id, $size, false, $attr );
Here, wp_get_loading_attr_default( 'the_post_thumbnail' )
apparently returns 'lazy' even if it is the first image on the page, which causes the loading attribute to be set and passed to wp_get_attachment_image
which then ignores the usual wp_lazy_loading_enabled
validation.
Why does wp_get_loading_attr_default( 'the_post_thumbnail' )
return true in this case? Does in_the_loop()
return false at this point?
Change History (4)
This ticket was mentioned in Slack in #core by desrosj. View the logs.
2 years ago
#3
@
2 years ago
- Component changed from Post Thumbnails to Editor
- Milestone changed from Awaiting Review to 6.2
- Version 6.1 deleted
This issue seems to predate the 6.1 cycle, and at this point, we can only fix regressions introduced during that cycle. I'm thus setting the milestone to 6.2.
Also setting the component to Editor, since the issue needs fixing in the Post Featured Image block, which is part of Gutenberg.
#4
@
2 years ago
- Milestone 6.2 deleted
- Resolution set to duplicate
- Status changed from new to closed
@mikeschroder kindly pointed me to #56930. Closing this ticket as a duplicate, per this comment.
I do not see a way to prevent this from happening to a Post Featured Image block used in a theme template, outside of the Loop like in the Single and Page templates in T22 and T23.
Maybe the
core/post-featured-image
block needs a "loading" attribute with matching "Loading" options "Default","Disabled","Lazy" and "Eager"? This value can then be passed toget_the_post_thumbnail()
overriding the default loading attribute.