wp_maybe_add_fetchpriority_high_attr() – Determines whether to add `fetchpriority=’high’` to loading attributes.

You appear to be a bot. Output may be restricted

Description

Determines whether to add fetchpriority='high' to loading attributes.

Usage

$array = wp_maybe_add_fetchpriority_high_attr( $loading_attrs, $tag_name, $attr );

Parameters

$loading_attrs
( array ) required – Array of the loading optimization attributes for the element.
$tag_name
( string ) required – The tag name.
$attr
( array ) required – Array of the attributes for the element.

Returns

array Updated loading optimization attributes for the element.

Source

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

1 to 46 of 46
function wp_maybe_add_fetchpriority_high_attr( $loading_attrs, $tag_name, $attr ) {
  // For now, adding `fetchpriority="high"` is only supported for images.
  if ( 'img' !== $tag_name ) {
    return $loading_attrs;
  }

  if ( isset( $attr['fetchpriority'] ) ) {
    /*
		 * While any `fetchpriority` value could be set in `$loading_attrs`,
		 * for consistency we only do it for `fetchpriority="high"` since that
		 * is the only possible value that WordPress core would apply on its
		 * own.
		 */
    if ( 'high' === $attr['fetchpriority'] ) {
      $loading_attrs['fetchpriority'] = 'high';
      wp_high_priority_element_flag( false );
    }

    return $loading_attrs;
  }

  // Lazy-loading and `fetchpriority="high"` are mutually exclusive.
  if ( isset( $loading_attrs['loading'] ) && 'lazy' === $loading_attrs['loading'] ) {
    return $loading_attrs;
  }

  if ( ! wp_high_priority_element_flag() ) {
    return $loading_attrs;
  }

  
/**
 * Filters the minimum square-pixels threshold for an image to be eligible as the high-priority image.
 *
 * @since 6.3.0
 *
 * @param int $threshold Minimum square-pixels threshold. Default 50000.
 */
  $wp_min_priority_img_pixels = apply_filters( 'wp_min_priority_img_pixels', 50000 );

  if ( $wp_min_priority_img_pixels <= $attr['width'] * $attr['height'] ) {
    $loading_attrs['fetchpriority'] = 'high';
    wp_high_priority_element_flag( false );
  }

  return $loading_attrs;
}
 

 View on GitHub View on Trac