[ WordPress.org  ](https://wordpress.org/)

  * [ News  ](https://wordpress.org/news/)
  * [ Showcase  ](https://wordpress.org/showcase/)
  * [ Hosting  ](https://wordpress.org/hosting/)
  * Extend 
    * [ Themes  ](https://wordpress.org/themes/)
    * [ Plugins  ](https://wordpress.org/plugins/)
    * [ Patterns  ](https://wordpress.org/patterns/)
    * [ Blocks  ](https://wordpress.org/blocks/)
    * [ Openverse  ↗  ︎  ](https://openverse.org/)
  * Learn 
    * [ Learn WordPress  ](https://learn.wordpress.org/)
    * [ Documentation  ](https://wordpress.org/documentation/)
    * [ Forums  ](https://wordpress.org/support/forums/)
    * [ Developers  ](https://developer.wordpress.org/)
    * [ WordPress.tv  ↗  ︎  ](https://wordpress.tv/)
  * Community 
    * [ Make WordPress  ](https://make.wordpress.org/)
    * [ Photo Directory  ](https://wordpress.org/photos/)
    * [ Five for the Future  ](https://wordpress.org/five-for-the-future/)
    * [ Events  ](https://events.wordpress.org/)
    * [ Job Board  ↗  ︎  ](https://jobs.wordpress.net/)
  * About 
    * [ About WordPress  ](https://wordpress.org/about/)
    * [ Enterprise  ](https://wordpress.org/enterprise/)
    * [ Gutenberg  ↗  ︎  ](https://wordpress.org/gutenberg/)
    * [ Swag Store  ↗  ︎  ](https://mercantile.wordpress.org/)
  * [ Get WordPress  ](https://wordpress.org/download/)

Search in WordPress.org

[ Get WordPress ](https://wordpress.org/download/)

[ WordPress.org  ](https://wordpress.org/)

[ WordPress Developer Resources ](https://developer.wordpress.org)

WP_Scripts::get_eligible_loading_strategy()

  * [ Developer Blog  ](https://developer.wordpress.org/news/)
  * [ Code Reference  ](https://developer.wordpress.org/reference/)
  * [ WP-CLI Commands  ](https://developer.wordpress.org/cli/commands/)

  * [ Developer Blog  ](https://developer.wordpress.org/news/)
  * [ Code Reference  ](https://developer.wordpress.org/reference/)
  * [ WP-CLI Commands  ](https://developer.wordpress.org/cli/commands/)

[ Home ](https://developer.wordpress.org) [ Reference
](https://developer.wordpress.org/reference/) [ Classes
](https://developer.wordpress.org/reference/classes/) [ WP_Scripts
](https://developer.wordpress.org/reference/classes/wp_scripts/)
WP_Scripts::get_eligible_loading_strategy()

Search

#  WP_Scripts::get_eligible_loading_strategy(  string  $handle  ):  string

##  In this article

Table of Contents

  * Parameters 
  * Return 
  * Source 
  * Related 
  * Changelog 

↑  Back to top

This function’s access is marked private. This means it is not intended for
use by plugin or theme developers, only in other core functions. It is listed
here for completeness.

Gets the best eligible loading strategy for a script.

##  Parameters

` $handle ` string  required

    

The script handle.

##  Return

string  The best eligible loading strategy.

##  Source

    
    
    private function get_eligible_loading_strategy( $handle ) {
    	$intended = (string) $this->get_data( $handle, 'strategy' );
    
    	// Bail early if there is no intended strategy.
    	if ( ! $intended ) {
    		return '';
    	}
    
    	/*
    	 * If the intended strategy is 'defer', limit the initial list of eligible
    	 * strategies, since 'async' can fallback to 'defer', but not vice-versa.
    	 */
    	$initial = ( 'defer' === $intended ) ? array( 'defer' ) : null;
    
    	$eligible = $this->filter_eligible_strategies( $handle, $initial );
    
    	// Return early once we know the eligible strategy is blocking.
    	if ( empty( $eligible ) ) {
    		return '';
    	}
    
    	return in_array( 'async', $eligible, true ) ? 'async' : 'defer';
    }
    

[ View all references ](https://developer.wordpress.org/reference/files/wp-
includes_class-wp-scripts-php-2/) [ View on Trac
](https://core.trac.wordpress.org/browser/tags/6.5/src/wp-includes/class-wp-
scripts.php#L891) [ View on GitHub ](https://github.com/WordPress/wordpress-
develop/blob/6.5/src/wp-includes/class-wp-scripts.ph