wp_lazy_loading_enabled( string $tag_name, string $context ): bool

Determines whether to add the loading attribute to the specified tag in the specified context.

Parameters

$tag_namestringrequired
The tag name.
$contextstringrequired
Additional context, like the current filter name or the function name from where this was called.

Return

bool Whether to add the attribute.

Source

function wp_lazy_loading_enabled( $tag_name, $context ) {
	/*
	 * By default add to all 'img' and 'iframe' tags.
	 * See https://html.spec.whatwg.org/multipage/embedded-content.html#attr-img-loading
	 * See https://html.spec.whatwg.org/multipage/iframe-embed-object.html#attr-iframe-loading
	 */
	$default = ( 'img' === $tag_name || 'iframe' === $tag_name );

	/**
	 * Filters whether to add the `loading` attribute to the specified tag in the specified context.
	 *
	 * @since 5.5.0
	 *
	 * @param bool   $default  Default value.
	 * @param string $tag_name The tag name.
	 * @param string $context  Additional context, like the current filter name
	 *                         or the function name from where this was called.
	 */
	return (bool) apply_filters( 'wp_lazy_loading_enabled', $default, $tag_name, $context );
}

Hooks

apply_filters( ‘wp_lazy_loading_enabled’, bool $default, string $tag_name, string $context )

Filters whether to add the loading attribute to the specified tag in the specified context.

Changelog

VersionDescription
5.7.0Now returns true by default for iframe tags.
5.5.0Introduced.

User Contributed Notes

  1. Skip to note 2 content

    wp_lazy_loading_enabled returns true for all tags, which is every time this function is called by default. Hooking into the wp_lazy_loading_enabled filter is the primary way of enabling or disabling this feature, however it does not readily allow this to be enabled or disabled for specific attachments or mime-types.

    add_filter( 'wp_lazy_loading_enabled', '__return_false' );

    1. To change how this feature works for specific attachments, the ‘loading’ attribute can be supplied to the wp_get_attachment_image function, or you can modify or remove the attribute using the wp_get_attachment_image_attributes filter.

    $attr['loading'] = false;
    return wp_get_attachment_image( $attachment_id, $size, $icon, $attr );

    Or

    add_filter( 'wp_get_attachment_image_attributes', function( $attr, $attachment, $size ) {
    	if ( $attachment->post_mime_type === 'image/svg+xml' ) {
    		unset( $attr['loading'] );
    	}
    	return $attr;
    } );

    2. To change how this works for specific avatars, you can either redefine the get_avatar function, supply the ‘loading’ attribute within the ‘extra_attr’ argument, or replace the HTML using the get_avatar filter.

    3. the_content, the_excerpt and widget_text_filters will call the wp_filter_content_tags filter on the content, which will also add the ‘loading’ attribute to image tags. To adjust this, the wp_img_tag_add_loading_attr filter can be used to manage the ‘loading’ attribute on a tag by tag basis.

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