locate_template() 用來檢索存在的優先級最高的模板文件,還能直接加載模板文件。
locate_template() 函數檢索時,如果有子主題則優先使用子主題的模板,沒有再繼續檢索父主題。
用法
locate_template( $template_names, $load, $require_once );
參數
$template_names
(數組)(必須)要引入的模板文件名(需要擴展名),會根據數組逐個匹配文件是否存在,越前邊的優先級越高。
默認值:None
$load
(布爾)(可選)如果設置成 True 則直接引入模板文件。
默認值:False
$require_once
(布爾)(可選)如果設置成 True 則如果之前引入過這次不再引入(require_once),否則無論是否引入過都會引入(require)。
(只有 $load 為 True,此參數才生效)。
默認值:False
返回值
(字符串)只要有一個指定的模板文件存在則返回它的路徑,否則返回空字符串。
例子
if( locate_template( 'content-' . $pageName . '.php' ) !== '' ){ //存在,引入模板文件 get_template_part( 'content', $pageName ); }else{ //不存在,直接顯示內容 the_content(); }
其它
此函數位於:wp-includes/template.php
快速檢索模板
get_query_template() 用於快速檢索出頁面模板,而且需要按照預定的頁面類型(type)。
它和 locate_template() 的不同在於需要填寫頁面的類型,而且會生成 {$type}_template 模板路徑過濾器。
用法
get_query_template( $type, $templates );
參數
$type
(字符串)(必須)所要獲取的模板文件的頁面的類型,要填對應模板文件沒有擴展名的文件名(比如 single)。
默認值:None
$templates
(數組)(可選)備選的模板列表。
默認值:空數組
返回值
返回模板文件的路徑。
例子
如果存在則引入 404 頁面的模板:
if ( '' != get_404_template() ) include( get_404_template() );
其它
此函數位於:wp-includes/template.php