load_template()

最后更新于:2021-11-27 14:09:28

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

Require the template file with GeChiUI environment.

参数

$_template_file

(string) (Required) Path to template file.

$require_once

(bool) (Optional) Whether to require_once or require.

Default value: true

$args

(array) (Optional) Additional arguments passed to the template.

Default value: array()

源文件

文件: gc-includes/template.php

function load_template( $_template_file, $require_once = true, $args = array() ) {
	global $posts, $post, $gc_did_header, $gc_query, $gc_rewrite, $gcdb, $gc_version, $gc, $id, $comment, $user_ID;

	if ( is_array( $gc_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 GeChiUI.PHP.DontExtract.extract_extract
		extract( $gc_query->query_vars, EXTR_SKIP );
	}

	if ( isset( $s ) ) {
		$s = esc_attr( $s );
	}

	if ( $require_once ) {
		require_once $_template_file;
	} else {
		require $_template_file;
	}
}
if ( $overridden_template = locate_template( 'some-template.php' ) ) {
	/*
	 * locate_template() returns path to file.
	 * if either the child theme or the parent theme have overridden the template.
	 */
	load_template( $overridden_template );
} else {
	/*
	 * If neither the child nor parent theme have overridden the template,
	 * we load the template from the 'templates' sub-directory of the directory this file is in.
	 */
	load_template( dirname( __FILE__ ) . '/templates/some-template.php' );
}