刘雅芝 發表於 2023-7-7 00:00:00

WordPress中用于检索模版的相关PHP函数使用解析

<p>
locate_template() 用来检索存在的优先级最高的模板文件,还能直接加载模板文件。</p>
<p>
locate_template() 函数检索时,如果有子主题则优先使用子主题的模板,没有再继续检索父主题。</p>
<p>
用法</p>
<div>
<div>
<div id="highlighter_256865">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>locate_template( </code><code>$template_names</code><code>, </code><code>$load</code><code>, </code><code>$require_once</code> <code>);</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
参数</p>
<p>
$template_names</p>
<p>
(数组)(必须)要引入的模板文件名(需要扩展名),会根据数组逐个匹配文件是否存在,越前边的优先级越高。</p>
<p>
默认值:None</p>
<p>
$load</p>
<p>
(布尔)(可选)如果设置成 True 则直接引入模板文件。</p>
<p>
默认值:False</p>
<p>
$require_once</p>
<p>
(布尔)(可选)如果设置成 True 则如果之前引入过这次不再引入(require_once),否则无论是否引入过都会引入(require)。</p>
<p>
(只有 $load 为 True,此参数才生效)。</p>
<p>
默认值:False</p>
<p>
返回值</p>
<p>
(字符串)只要有一个指定的模板文件存在则返回它的路径,否则返回空字符串。</p>
<p>
例子</p>
<div>
<div>
<div id="highlighter_232876">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
<div>
5</div>
<div>
6</div>
<div>
7</div>
</td>
<td>
<div>
<div>
<code>if</code><code>( locate_template( </code><code>'content-'</code> <code>. </code><code>$pageName</code> <code>. </code><code>'.php'</code> <code>) !== </code><code>''</code> <code>){</code>
</div>
<div>
<code>  </code><code>//存在,引入模板文件</code>
</div>
<div>
<code>  </code><code>get_template_part( </code><code>'content'</code><code>, </code><code>$pageName</code> <code>);</code>
</div>
<div>
<code>}</code><code>else</code><code>{</code>
</div>
<div>
<code>  </code><code>//不存在,直接显示内容</code>
</div>
<div>
<code>  </code><code>the_content();</code>
</div>
<div>
<code>}</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
其它</p>
<p>
此函数位于:wp-includes/template.php</p>
<p>
<strong>快速检索模板</strong></p>
<p>
get_query_template() 用于快速检索出页面模板,而且需要按照预定的页面类型(type)。</p>
<p>
它和 locate_template() 的不同在于需要填写页面的类型,而且会生成 {$type}_template 模板路径过滤器。<br>
用法</p>
<div>
<div>
<div id="highlighter_376705">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>get_query_template( </code><code>$type</code><code>, </code><code>$templates</code> <code>);</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
参数</p>
<p>
$type</p>
<p>
(字符串)(必须)所要获取的模板文件的页面的类型,要填对应模板文件没有扩展名的文件名(比如 single)。</p>
<p>
默认值:None</p>
<p>
$templates</p>
<p>
(数组)(可选)备选的模板列表。</p>
<p>
默认值:空数组</p>
<p>
返回值</p>
<p>
返回模板文件的路径。</p>
<p>
例子</p>
<p>
如果存在则引入 404 页面的模板:</p>
<div>
<div>
<div id="highlighter_466177">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>if</code> <code>( </code><code>''</code> <code>!= get_404_template() ) </code><code>include</code><code>( get_404_template() );</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
其它</p>
<p>
此函数位于:wp-includes/template.php</p>
頁: [1]
查看完整版本: WordPress中用于检索模版的相关PHP函数使用解析