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.
Return
(string) Converted iframe
tag with loading
attribute added.
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; }
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
5.7.0 | Introduced. |