On this page
load_template( string $_template_file, bool $require_once = true, array $args = array() )
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 Required-
Path to template file.
$require_oncebool Optional-
Whether to require_once or require.
Default:
true $argsarray Optional-
Additional arguments passed to the template.
Default:
array()
More Information
Uses global: (object) $wp_query to extract extract() global variables returned by the query_vars method while protecting the current values in these global variables:
- (unknown type) $posts
- (unknown type) $post
- (boolean) $wp_did_header Returns true if the WordPress header was already loaded. See the /wp-blog-header.php file for details.
- (boolean) $wp_did_template_redirect
- (object) $wp_rewrite
- (object) $wpdb
- (string) $wp_version holds the installed WordPress version number.
- (string) $wp
- (string) $id
- (string) $comment
- (string) $user_ID
Source
File: wp-includes/template.php. View all references
function load_template( $_template_file, $require_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 $require_once Whether to require_once or require.
* @param array $args Additional arguments passed to the template.
*/
do_action( 'wp_before_load_template', $_template_file, $require_once, $args );
if ( $require_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 $require_once Whether to require_once or require.
* @param array $args Additional arguments passed to the template.
*/
do_action( 'wp_after_load_template', $_template_file, $require_once, $args );
}
Hooks
- do_action( 'wp_after_load_template',
string $_template_file ,bool $require_once ,array $args ) -
Fires after a template file is loaded.
- do_action( 'wp_before_load_template',
string $_template_file ,bool $require_once ,array $args ) -
Fires before a template file is loaded.
Related
Uses
| Uses | Description |
|---|---|
| esc_attr() wp-includes/formatting.php | Escaping for HTML attributes. |
| do_action() wp-includes/plugin.php | Calls the callback functions that have been added to an action hook. |
Used By
| Used By | Description |
|---|---|
| do_feed_rdf() wp-includes/functions.php | Loads the RDF RSS 0.91 Feed template. |
| do_feed_rss() wp-includes/functions.php | Loads the RSS 1.0 Feed Template. |
| do_feed_rss2() wp-includes/functions.php | Loads either the RSS2 comment feed or the RSS2 posts feed. |
| do_feed_atom() wp-includes/functions.php | Loads either Atom comment feed or Atom posts feed. |
| locate_template() wp-includes/template.php | Retrieves the name of the highest priority template file that exists. |
Changelog
© 2003–2022 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/load_template