wppaste
WordPress

load_template( string $_template_file, bool $load_once = true, array $args = array() )

Since
1.5.0, 5.5.0
Source
wp-includes/template.php:782
Requires the template file with WordPress environment.

Description

The globals are set up for the template file to ensure that the WordPress environment is available from within the function. The query variables are also available.

Parameters

$_template_filestring
Path to template file.
$load_oncebooloptional
Whether to require_once or require. Default true.Default: true
$argsarrayoptional
Additional arguments passed to the template. Default empty array.Default: array()

Hooks fired · 2

2 hooks fire while load_template() runs, in this order:

  1. do_action( wp_before_load_template )actionline 811 (+29 into the body)

    Fires before a template file is loaded.

  2. do_action( wp_after_load_template )actionline 828 (+46 into the body)

    Fires after a template file is loaded.

Uses · 2

  • esc_attr()Escaping for HTML attributes.
  • do_action()Calls the callback functions that have been added to an action hook.

Used by · 5

Source

function load_template( $_template_file, $load_once = true, $args = array() ) {	global $posts, $post, $wp_did_header, $wp_query, $wp_rewrite, $wpdb, $wp_version, $wp, $id, $comment, $user_ID; 	if ( is_array( $wp_query->query_vars ) ) {		/*		 * This use of extract() cannot be removed. There are many possible ways that		 * templates could depend on variables that it creates existing, and no way to		 * detect and deprecate it.		 *		 * Passing the EXTR_SKIP flag is the safest option, ensuring globals and		 * function variables cannot be overwritten.		 */		// phpcs:ignore WordPress.PHP.DontExtract.extract_extract		extract( $wp_query->query_vars, EXTR_SKIP );	} 	if ( isset( $s ) ) {		$s = esc_attr( $s ); // @phpstan-ignore variable.undefined (It's extracted from query vars.)	} 	/**	 * Fires before a template file is loaded.	 *	 * @since 6.1.0	 *	 * @param string $_template_file The full path to the template file.	 * @param bool   $load_once      Whether to require_once or require.	 * @param array  $args           Additional arguments passed to the template.	 */	do_action( 'wp_before_load_template', $_template_file, $load_once, $args ); 	if ( $load_once ) {		require_once $_template_file;	} else {		require $_template_file;	} 	/**	 * Fires after a template file is loaded.	 *	 * @since 6.1.0	 *	 * @param string $_template_file The full path to the template file.	 * @param bool   $load_once      Whether to require_once or require.	 * @param array  $args           Additional arguments passed to the template.	 */	do_action( 'wp_after_load_template', $_template_file, $load_once, $args );}

History

Introduced in 1.5.0. Unchanged from 6.7.7 through 7.1.0.

  1. 6.7.7
  2. 6.8.8
  3. 6.9.7
  4. 7.0.4
  5. 7.1.0

Signature, return type and hooks compared across 5 parsed releases.

5.5.0
The $args parameter was added.from the docblock
1.5.0
Introduced.from the docblock

About this page

Parsed data
Generated from the wordpress-develop 7.1.0 tag, from src/wp-includes/template.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.
Corrections
Something wrong on this page? Report it and it gets fixed in the next regeneration.