文本是《wordpress主题完整开发系列(共30篇)》专题的第 10 篇。阅读本文前,建议先阅读前面的文章:
包含主题核心文件
我们已经知道,WordPress主题是从许多不同的模板文件构建的。这些文件通常包括 sidebar.php
, header.php
和 footer.php
。这些文件都是使用 模板标签调用的 ,例如:
get_header()
get_footer();
get_sidebar() ;
我们可以通过自定义文件名称来调用这些文件的自定义版本 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-php
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_parent_theme_file_uri() ;
get_parent_theme_file_path() ;
与get_theme_file_uri()
一样,我们也可以像这样引用子文件夹和文件:
echo get_parent_theme_file_uri( 'images/logo.png' );
//or
echo get_parent_theme_file_path( 'images/logo.png' );
引用可能不存在的文件时要小心,因为这些函数将返回URI或文件路径,无论文件是否存在。如果文件丢失,这些函数将返回断开的链接。
函数 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 将保持不变。但是,这可能会增加数据库查询。
您已阅读完《wordpress主题完整开发系列(共30篇)》专题的第 10 篇。请继续阅读该专题下面的文章:
- 11.引领主题基础-打造精彩文章
- 12.打造高效开发环境,从设置开始
- 13.从零开始制作主题:主题开发入门
- 14.「必知!SEO优化中如何巧妙运用模板标签」
- 15.教你轻松制作自己的WordPress主题之制作page.php
- 16.「打造绝佳用户体验:WordPress comments.php主题制作教程」
- 17.\”WordPress主题制作全过程:如何制作一个完美的single.php页面\”
- 18.《详解WordPress主题制作(八):从零开始制作自己的index.php页面》
- 19.《最全面的WordPress主题制作教程(7):制作sidebar.php》
- 20.《从零开始学WordPress主题制作(六):打造独一无二的footer》
- 21.学习WordPress主题制作(五):打造独一无二的header.php文件
- 22.WordPress主题制作全记录(四):实践篇,零基础开始小试牛刀
- 23.《打造个性化WordPress主题(三):HTML静态模板制作详解》
- 24.打造个性博客,从WordPress主题制作开始——主题文件构成
- 25.全面解析WordPress主题制作流程(一):基础准备
- 26.如何优化WordPress主题首页模板?探究front-page.php、home.php、page.php、index.php的调用顺序
- 27.\”掌握WordPress函数load-{$variable} action的技巧\”
- 28.WordPress SEO技巧:如何设置最佳Keywords和Description
- 29.如何在WordPress中限制搜索结果- 排除或指定特定文章、页面和分类
- 30.解决 WordPress Gravatar 头像无法访问的方法-轻松解决头像加载问题