链接到核心主题文件
正如你所了解的那样,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()在页面的任何位置调用它们。要在你的主题中创建自定义模板文件,请给文件一个合适的名称,并像处理 header、sidebar 和 footer 文件一样使用相同的自定义模板系统:
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' );链接到主题目录
要链接到主题的目录,你可以使用以下函数:
如果你不使用子主题,此函数将返回你主题主文件夹的完整 URI。你可以用它来引用主题中的子文件夹和文件,如下所示:
echo get_theme_file_uri( 'images/logo.png' );如果你使用的是子主题,那么如果该文件存在于你的子主题中,此函数将返回子主题中文件的 URI。如果在子主题中找不到该文件,则该函数将返回父主题中文件的 URI。在分发主题或任何其他可能激活或不激活子主题的场合时,这一点尤其重要。
要访问你主题目录中的文件路径,你可以使用以下函数:
与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 或文件路径。如果文件缺失,这些函数将返回损坏的链接。
The functions get_theme_file_uri()、get_theme_file_path()、get_parent_theme_file_uri() 和 get_parent_theme_file_path() 是在 WordPress 4.7 中引入的。对于之前的 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 将保持不变。但是,这可能会增加数据库查询次数。