wp_iframe_tag_add_loading_attr() – Adds `loading` attribute to an `iframe` HTML tag.

You appear to be a bot. Output may be restricted

Description

Adds loading attribute to an iframe HTML tag.

Usage

$string = wp_iframe_tag_add_loading_attr( $iframe, $context );

Parameters

$iframe
( string ) required – The HTML iframe tag where the attribute should be added.
$context
( string ) required – Additional context to pass to the filters.

Returns

string Converted iframe tag with loading attribute added.

Source

File name: wordpress/wp-includes/media.php
Lines:

1 to 41 of 41
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;
}
 

 View on GitHub View on Trac