wp_img_tag_add_width_and_height_attr( string $image, string $context, int $attachment_id ): string

In this article

Adds width and height attributes to an img HTML tag.

Parameters

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

Return

string Converted 'img' element with 'width' and 'height' attributes added.

Source

		$image = str_replace( '<img', '<img decoding="' . esc_attr( $optimization_attrs['decoding'] ) . '"', $image );
	}
}

// Images should have dimension attributes for the 'loading' and 'fetchpriority' attributes to be added.
if ( ! str_contains( $image, ' width="' ) || ! str_contains( $image, ' height="' ) ) {
	return $image;
}

// Retained for backward compatibility.
$loading_attrs_enabled = wp_lazy_loading_enabled( 'img', $context );

if ( empty( $loading_val ) && $loading_attrs_enabled ) {
	/**
	 * Filters the `loading` attribute value to add to an image. Default `lazy`.
	 *
	 * Returning `false` or an empty string will not add the attribute.
	 * Returning `true` will add the default value.
	 *
	 * @since 5.5.0
	 *
	 * @param string|bool $value   The `loading` attribute value. Returning a falsey value will result in
	 *                             the attribute being omitted for the image.
	 * @param string      $image   The HTML `img` tag to be filtered.
	 * @param string      $context Additional context about how the function was called or where the img tag is.
	 */
	$filtered_loading_attr = apply_filters(
		'wp_img_tag_add_loading_attr',
		isset( $optimization_attrs['loading'] ) ? $optimization_attrs['loading'] : false,
		$image,
		$context
	);

	// Validate the values after filtering.
	if ( isset( $optimization_attrs['loading'] ) && ! $filtered_loading_attr ) {
		// Unset `loading` attributes if `$filtered_loading_attr` is set to `false`.
		unset( $optimization_attrs['loading'] );
	} elseif ( in_array( $filtered_loading_attr, array( 'lazy', 'eager' ), true ) ) {
		/*
		 * If the filter changed the loading attribute to "lazy" when a fetchpriority attribute
		 * with value "high" is already present, trigger a warning since those two attribute
		 * values should be mutually exclusive.

Changelog

VersionDescription
5.5.0Introduced.

User Contributed Notes

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