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

Adds width and height attributes to an img HTML tag.

Parameters Parameters


(string) (Required) The HTML img tag where the attribute should be added.


(string) (Required) Additional context to pass to the filters.


(int) (Required) Image attachment ID.

Top ↑

Return Return

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

Top ↑

Source Source

File: wp-includes/media.php

function wp_img_tag_add_width_and_height_attr( $image, $context, $attachment_id ) {
	$image_src         = preg_match( '/src="([^"]+)"/', $image, $match_src ) ? $match_src[1] : '';
	list( $image_src ) = explode( '?', $image_src );

	// Return early if we couldn't get the image source.
	if ( ! $image_src ) {
		return $image;

	 * Filters whether to add the missing `width` and `height` HTML attributes to the img tag. Default `true`.
	 * Returning anything else than `true` will not add the attributes.
	 * @since 5.5.0
	 * @param bool   $value         The filtered value, defaults to `true`.
	 * @param string $image         The HTML `img` tag where the attribute should be added.
	 * @param string $context       Additional context about how the function was called or where the img tag is.
	 * @param int    $attachment_id The image attachment ID.
	$add = apply_filters( 'wp_img_tag_add_width_and_height_attr', true, $image, $context, $attachment_id );

	if ( true === $add ) {
		$image_meta = wp_get_attachment_metadata( $attachment_id );
		$size_array = wp_image_src_get_dimensions( $image_src, $image_meta, $attachment_id );

		if ( $size_array ) {
			$hw = trim( image_hwstring( $size_array[0], $size_array[1] ) );
			return str_replace( '<img', "<img {$hw}", $image );

	return $image;

Top ↑

Changelog Changelog

Version Description
5.5.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

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