检索存在的最高优先级模板文件的名称。

原型

locate_template( string|array $template_names, bool $load = false, bool $require_once = true )

描述

在TEMPLATEPATH和wp-includes / theme-compat之前搜索STYLESHEETPATH,以便从父主题继承的主题可以只重载一个文件。

参数

$template_names (string|array) (Required) 要按顺序搜索的模板文件。

$load (bool) (Optional) 如果为true,则模板文件将被加载(如果找到)。

$require_once (bool) (Optional) 是否需要require_once或require。如果$ load为false,则无效。

返回值

(string)  模板文件名(如果找到)。

源文件

路径:wp-includes/template.php

<?php
...
function locate_template($template_names, $load = false, $require_once = true ) {
	$located = '';
	foreach ( (array) $template_names as $template_name ) {
		if ( !$template_name )
			continue;
		if ( file_exists(STYLESHEETPATH . '/' . $template_name)) {
			$located = STYLESHEETPATH . '/' . $template_name;
			break;
		} elseif ( file_exists(TEMPLATEPATH . '/' . $template_name) ) {
			$located = TEMPLATEPATH . '/' . $template_name;
			break;
		} elseif ( file_exists( ABSPATH . WPINC . '/theme-compat/' . $template_name ) ) {
			$located = ABSPATH . WPINC . '/theme-compat/' . $template_name;
			break;
		}
	}
	if ( $load && '' != $located )
		load_template( $located, $require_once );
	return $located;
}
...
?>

其他

英文文档:https://developer.wordpress.org/reference/functions/locate_template/