A WordPress-centric search engine for devs and theme authors

load_template › WordPress Function

load_template ( $_template_file, $require_once = true, $args = array() )
Parameters: (3)
  • (string) $_template_file Path to template file.
    Required: Yes
  • (bool) $require_once Whether to require_once or require. Default true.
    Required: No
    Default: true
  • (array) $args Optional. Additional arguments passed to the template. Default empty array.
    Required: No
    Default: array()
Defined at:
Change Log:
  • 5.5.0

Require the template file with WordPress environment.

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.


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 );

	if ( $require_once ) {
		require_once $_template_file;
	} else {
		require $_template_file;