wp_img_tag_add_decoding_attr( string $image, string $context ): string

This function has been deprecated. Use wp_img_tag_add_loading_optimization_attrs() instead.

Adds decoding attribute to an img HTML tag.

Description

The decoding attribute allows developers to indicate whether the browser can decode the image off the main thread (async), on the main thread (sync) or as determined by the browser (auto).

By default WordPress adds decoding="async" to images but developers can use the ‘wp_img_tag_add_decoding_attr’ filter to modify this to remove the attribute or set it to another accepted value.

See also

Parameters

$imagestringrequired
The HTML img tag where the attribute should be added.
$contextstringrequired
Additional context to pass to the filters.

Return

string Converted img tag with decoding attribute added.

Source

function wp_img_tag_add_decoding_attr( $image, $context ) {
	_deprecated_function( __FUNCTION__, '6.4.0', 'wp_img_tag_add_loading_optimization_attrs()' );

	/*
	 * Only apply the decoding attribute to images that have a src attribute that
	 * starts with a double quote, ensuring escaped JSON is also excluded.
	 */
	if ( ! str_contains( $image, ' src="' ) ) {
		return $image;
	}

	/** This action is documented in wp-includes/media.php */
	$value = apply_filters( 'wp_img_tag_add_decoding_attr', 'async', $image, $context );

	if ( in_array( $value, array( 'async', 'sync', 'auto' ), true ) ) {
		$image = str_replace( '<img ', '<img decoding="' . esc_attr( $value ) . '" ', $image );
	}

	return $image;
}

Hooks

apply_filters( ‘wp_img_tag_add_decoding_attr’, string|false|null $value, string $image, string $context )

Filters the decoding attribute value to add to an image. Default async.

Changelog

VersionDescription
6.4.0Use wp_img_tag_add_loading_optimization_attrs() instead.
6.1.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.