链接主题文件和目录

链接主题核心文件

您已经知道,WordPress 主题是从许多不同的模板文件构建的。这些文件通常包括 sidebar.php , header.php和 footer.php。这些文件都是使用 模板标签调用的 ,例如:

您可以通过自定义文件名称来调用这些文件的自定义版本 sidebar-{your_custom_template}.php , header-{your_custom_template}.php 以及 footer-{your_custom_template}.php 。然后,您可以使用自定义模板名称作为调用模版函数的唯一参数来包含这个文件,如下所示:

get_header( 'your_custom_template' );
get_footer( 'your_custom_template' );
get_sidebar( 'your_custom_template' );

WordPress 通过汇编各种文件来创建页面。除了页眉,页脚和侧边栏的标准文件之外,您还可以使用 get_template_part() 来在主题的任何位置调用模板文件片段。要在主题中创建自定义模板文件,请为文件指定一个合适的名称,并使用与标题、侧边栏和页脚文件相同的自定义模板系统,如:

slug-template.php

例如,如果您要创建一个自定义模板来显示发布的内容,您可以创建一个名为 content.php 的模板文件,然后通过给这个文件名加后缀的方式创建自自定义模板片段文件,如:content-product.php。然后,您就可以在主题中加载此模板文件了,如下所示:

get_template_part( 'content', 'product' );

如果您想让这些模板文件更加有序,例如,您为不同的文章类型添加了各自的模板文件,您可以创建一个 content-templates 的目录,然后把文章类型模板片段放到这个目录中。

您使用的主题的主题层次结构 my-theme可能如下所示。 style.css和 page.php包含在上下文中。

  • themes
    • my-theme
      • content-templates
        • content-location.php
        • content-product.php
        • content-profile.php
      • style.css

要包含您的内容模板,您需要将目录名称添加到 slug 参数中,如下所示:

get_template_part( 'content-templates/content', 'location' );
get_template_part( 'content-templates/content', 'product' );
get_template_part( 'content-templates/content', 'profile' );

链接到主题目录

要链接到主题的目录,您可以使用以下函数:

get_theme_file_uri()

如果您不使用子主题,则此函数会将完整URI返回到主题的主文件夹。您可以使用它来引用主题中的子文件夹和文件,如下所示:

echo get_theme_file_uri( 'images/logo.png' );

如果您使用的是一个子主题,那么该函数将返回您的子主题中的文件的URI(如果存在)。 如果您的子主题中找不到文件,该函数将返回父主题中的文件的URI。 在分发主题时或在子主题可能激活或未激活的任何其他情况下,请务必记住这一点。

要访问主题目录中文件的路径,可以使用以下函数:

get_theme_file_path();

与 get_theme_file_uri() 一样 ,这个函数将返回子主题中文件的路径(如果存在)。如果在子主题中找不到该文件,该函数将返回父主题中文件的路径。

在子主题中,我们可以使用以下函数链接到父主题目录中的文件 URI 或路径:

get_theme_file_uri()一样,您也可以像这样引用子文件夹和文件:

echo get_parent_theme_file_uri( 'images/logo.png' );
//或者
echo get_parent_theme_file_path( 'images/logo.png' );

引用可能不存在的文件时要小心,因为这些函数将返回URI或文件路径,无论文件是否存在。如果文件丢失,这些函数将返回断开的链接。

以下函数是在 WordPress 4.7 中引入的:

get_theme_file_uri() 
get_theme_file_path()
get_parent_theme_file_uri()
get_parent_theme_file_path() 

对于以前的WordPress版本,请使用:

get_template_directory_uri() 
get_template_directory()
get_stylesheet_directory_uri()
get_stylesheet_directory() 

请注意,较新的 4.7 版本中的函数无论如何都会运行旧函数作为检查过程的一部分,因此在可能的情况下使用较新的函数是有意义的。

模板中的动态链接

无论您的固定链接如何设置,您都可以通过引用文章 ID 来将链接发布到页面。如下:

<a href="<?php echo get_permalink($ID); ?>">这是一个链接</a>

这是一种创建页面菜单的便捷方式,因为您可以在不破坏链接的情况下更改页面大小,因为 ID 将保持不变。但是,这可能会增加数据库查询。

该文章对您有帮助吗?

需要什么帮助?