load_template( string $_template_file, bool $load_once = true, array $args = array() )
- Since
- 1.5.0, 5.5.0
- Source
wp-includes/template.php:778
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:
- do_action( wp_before_load_template )actionline 807 (+29 into the body)
Fires before a template file is loaded.
- do_action( wp_after_load_template )actionline 824 (+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
- do_feed_atom()Loads either Atom comment feed or Atom posts feed.
- do_feed_rdf()Loads the RDF RSS 0.91 Feed template.
- do_feed_rss()Loads the RSS 1.0 Feed Template.
- do_feed_rss2()Loads either the RSS2 comment feed or the RSS2 posts feed.
- locate_template()Retrieves the name of the highest priority template file that exists.
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 ); } /** * 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.
Signature, return type and hooks compared across 5 parsed releases.
5.5.0
The
$args parameter was added.from the docblock1.5.0
Introduced.from the docblock
About this page
- Parsed data
- Generated from the wordpress-develop 6.8.8 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.