Media: Allow to omit `decoding="async"` on tags from `wp_get_attachment_image()`.

When adding `decoding="async"` to images was introduced in [53480], it did not provide the ability to customize that behavior specifically for image tags returned from `wp_get_attachment_image()`.

With this changeset it is now possible to explicitly provide a `decoding` value of e.g. boolean `false` in the `$attr` parameter of the function, to ensure the attribute is omitted.

Props maximej, adamsilverstein, flixos90, costdev, peterwilsoncc, mukesh27.
Fixes #57086.

Built from https://develop.svn.wordpress.org/trunk@55171


git-svn-id: http://core.svn.wordpress.org/trunk@54704 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Felix Arntz 2023-01-31 19:41:14 +00:00
parent e6cc65d39e
commit d8246e8f7a
2 changed files with 8 additions and 2 deletions

View File

@ -1023,7 +1023,8 @@ function wp_get_attachment_image_src( $attachment_id, $size = 'thumbnail', $icon
* will result in the attribute being omitted for the image. * will result in the attribute being omitted for the image.
* Defaults to 'lazy', depending on wp_lazy_loading_enabled(). * Defaults to 'lazy', depending on wp_lazy_loading_enabled().
* @type string $decoding The 'decoding' attribute value. Possible values are * @type string $decoding The 'decoding' attribute value. Possible values are
* 'async' (default), 'sync', or 'auto'. * 'async' (default), 'sync', or 'auto'. Passing false or an empty
* string will result in the attribute being omitted.
* } * }
* @return string HTML img element or empty string on failure. * @return string HTML img element or empty string on failure.
*/ */
@ -1056,6 +1057,11 @@ function wp_get_attachment_image( $attachment_id, $size = 'thumbnail', $icon = f
$attr = wp_parse_args( $attr, $default_attr ); $attr = wp_parse_args( $attr, $default_attr );
// Omit the `decoding` attribute if the value is invalid according to the spec.
if ( empty( $attr['decoding'] ) || ! in_array( $attr['decoding'], array( 'async', 'sync', 'auto' ), true ) ) {
unset( $attr['decoding'] );
}
// If the default value of `lazy` for the `loading` attribute is overridden // If the default value of `lazy` for the `loading` attribute is overridden
// to omit the attribute for this image, ensure it is not included. // to omit the attribute for this image, ensure it is not included.
if ( array_key_exists( 'loading', $attr ) && ! $attr['loading'] ) { if ( array_key_exists( 'loading', $attr ) && ! $attr['loading'] ) {

View File

@ -16,7 +16,7 @@
* *
* @global string $wp_version * @global string $wp_version
*/ */
$wp_version = '6.2-alpha-55170'; $wp_version = '6.2-alpha-55171';
/** /**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.