Maine

纵有疾风起,人生不言弃

WordPress函数:get_template_part( )

原型:

get_template_part( string $slug, string $name = null )

作用:

主要用于调用自定义模版,可以加载一个模板部件到当前模板。有点类似 php 中自带的 includerequire,但在 wordpress 中,使用 get_template_part() 函数更为灵活,可以减少代码的复用。

参数

$slug:(string 类型),此参数是必须要传递的参数,代表要加载模板的标识一样的东西。下面用法中详解。
$name:(string 类型),这是个可选的参数,用于标识要加载的这一类模板中的特殊情况。

源文件:

wp-includes/general-template.php

<?php
..
function get_template_part( $slug, $name = null ) {
    /**
     * Fires before the specified template part file is loaded.
     *
     * The dynamic portion of the hook name, `$slug`, refers to the slug name
     * for the generic template part.
     *
     * @since 3.0.0
     *
     * @param string      $slug The slug name for the generic template.
     * @param string|null $name The name of the specialized template.
     */
    do_action( "get_template_part_{$slug}", $slug, $name );

    $templates = array();
    $name = (string) $name;
    if ( '' !== $name )
        $templates[] = "{$slug}-{$name}.php";

    $templates[] = "{$slug}.php";

    locate_template($templates, true, false);
}

用法:

还记得在 wordpress 的主题开发中,我们使用 page.php 文件来作为默认的页面模板,当我们还想要为用户提供一个友情链接的特用页面模板的时候,我们会创建 page-link.php。当然,page 是WordPress 内置提供并且自动调用的,现在我们可以通过 get_template_part() 函数来调用自己的模板文件。

假如我们创建了 content.php 作为展示文章内容的模板,当我们在 single.php 中想要调用文章内容模板来展示文章内容的时候,就可以使用 get_template_part('content') 来引入 content.php 的内容。假如我们还需要为分类为 wordpress-api 的文章提供特殊的文章内容模板,那么就可以创建一个 content-wpapi.php 文件,在我们展示文章内容的时候我们可以获取一下其所属分类信息,正好这篇文章属于 wordpress-api ,这个时候我们调用文章内容模板就不能使用 get_template_part('content') 了,而要使用 get_template_part('content', 'wpapi')。这个时候导入的就是 content-wpapi.php 文件了,想必看到这里,应该对参数中的 $slug$name 有所了解了吧。

其他

官方文档:https://developer.wordpress.org/reference/functions/get_template_part/

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注