wp_iframe_tag_add_loading_attr() WordPress Function

This function is used to add a loading attribute to an iframe tag. This is useful for iframes that are used to load content asynchronously. By adding the loading attribute, the browser can choose to not render the iframe until the content has been loaded.

wp_iframe_tag_add_loading_attr( string $iframe, string $context ) #

Adds loading attribute to an iframe HTML tag.


Parameters

$iframe

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

$context

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


Top ↑

Return

(string) Converted iframe tag with loading attribute added.


Top ↑

Source

File: wp-includes/media.php

function wp_iframe_tag_add_loading_attr( $iframe, $context ) {
	// Iframes with fallback content (see `wp_filter_oembed_result()`) should not be lazy-loaded because they are
	// visually hidden initially.
	if ( false !== strpos( $iframe, ' data-secret="' ) ) {
		return $iframe;
	}

	// Get loading attribute value to use. This must occur before the conditional check below so that even iframes that
	// are ineligible for being lazy-loaded are considered.
	$value = wp_get_loading_attr_default( $context );

	// Iframes should have source and dimension attributes for the `loading` attribute to be added.
	if ( false === strpos( $iframe, ' src="' ) || false === strpos( $iframe, ' width="' ) || false === strpos( $iframe, ' height="' ) ) {
		return $iframe;
	}

	/**
	 * Filters the `loading` attribute value to add to an iframe. Default `lazy`.
	 *
	 * Returning `false` or an empty string will not add the attribute.
	 * Returning `true` will add the default value.
	 *
	 * @since 5.7.0
	 *
	 * @param string|bool $value   The `loading` attribute value. Returning a falsey value will result in
	 *                             the attribute being omitted for the iframe.
	 * @param string      $iframe  The HTML `iframe` tag to be filtered.
	 * @param string      $context Additional context about how the function was called or where the iframe tag is.
	 */
	$value = apply_filters( 'wp_iframe_tag_add_loading_attr', $value, $iframe, $context );

	if ( $value ) {
		if ( ! in_array( $value, array( 'lazy', 'eager' ), true ) ) {
			$value = 'lazy';
		}

		return str_replace( '<iframe', '<iframe loading="' . esc_attr( $value ) . '"', $iframe );
	}

	return $iframe;
}


Top ↑

Changelog

Changelog
VersionDescription
5.7.0Introduced.

The content displayed on this page has been created in part by processing WordPress source code files which are made available under the GPLv2 (or a later version) license by theĀ Free Software Foundation. In addition to this, the content includes user-written examples and information. All material is subject to review and curation by the WPPaste.com community.

Show More
Show More