15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > WordPress主题模板层级

WordPress主题模板层级

时间:2023-06-11 20:48:02 | 来源:网站运营

时间:2023-06-11 20:48:02 来源:网站运营

WordPress主题模板层级:如所讨论的,模板文件是模块化的,可重复使用的文件,用于在WordPress站点上生成网页。 一些模板文件(如页眉和页脚模板)用于所有网站的页面,而其他模板文件仅在特定条件下使用。

本文解释WordPress如何确定在单个页面上使用哪个模板文件。 如果要自定义现有的WordPress主题,它将帮助您确定需要编辑的模板文件。

提示:您还可以使用条件标签来控制在特定页面上加载哪些模板。

模板文件层次结构

概述

WordPress使用查询字符串来决定哪个模板或一组模板应用于显示页面。查询字符串是指向您网站每个部分的链接中的信息。它来自初始问号,可能包含多个由&符号分隔的参数。

简单地说,WordPress通过模板层次结构搜索,直到找到匹配的模板文件。要确定使用哪个模板文件,WordPress:

如果WordPress找不到具有匹配名称的模板文件,它将跳到层次结构中的下一个文件。如果WordPress找不到任何匹配的模板文件,将使用主题的index.php文件。

示例

如果您的博客位于http://example.com/blog/ ,访问者点击链接到类别页面(例如http://example.com/blog/category/your-cat/) ,WordPress会查找模板 在当前主题的目录中匹配类别的ID以生成正确的页面。 更具体地说,WordPress遵循以下过程:

视觉概述

下图显示了哪些模板文件被调用以基于WordPress模板层次结构生成WordPress页面。







您也可以与此图交互。

模板层次详细

虽然模板层次结构更容易被理解为图表,但以下部分描述了WordPress为多种查询类型调用模板文件的顺序。

主页显示

默认情况下,WordPress设置您的网站的主页以显示最新的博文。 这个页面被称为博客帖子索引。 您也可以将您的博客帖子设置为在单独的静态页面上显示。 模板文件home.php用于呈现博客帖子索引,无论是用作首页还是单独的静态页面。 如果home.php不存在,WordPress将使用index.php。

注意:如果front-page.php存在,它将覆盖home.php模板。

首页

front-page.php模板文件用于呈现您网站的首页,首页是否显示博客帖子索引(如上所述)或静态页面。 首页模板优先于博客帖子索引(home.php)模板。 如果front-page.php文件不存在,WordPress将根据设置→阅读中的设置使用home.php或page.php文件。 如果这两个文件都不存在,它将使用index.php文件。

正如你所看到的,WordPress所采用的路径有很多规则。 使用上面的图表是确定WordPress将显示的最佳方式。

单页内容

单页内容模板文件用于呈现单页内容。 WordPress使用以下路径:

单页

用于呈现静态页面的模板文件(页面后置类型)。 请注意,与其他后期类型不同,页面特别适用于WordPress,并使用以下修补程序:

自定义模板文件 - 分配给页面的页面模板。 请参阅get_page_templates()。

类别

渲染类别归档索引页在WordPress中使用以下路径:

标签

要显示标签归档索引页面,WordPress使用以下路径:

自定义分类

自定义分类使用稍微不同的模板文件路径:

自定义内容类型

自定义帖子类型使用以下路径呈现相应的归档索引页面。

(要渲染单个帖子类型模板,请参阅上面的单个帖子显示部分。)

作者显示

基于上述示例,渲染作者存档索引页面是相当明确的:

日期

基于日期的归档索引页面按照您预期的方式呈现:

搜索结果

搜索结果遵循与其他模板类型相同的模式:

404(找不到)

同样,404模板文件按以下顺序调用:

附件

渲染附件页面(附件类型)需要遵循以下路径:

嵌入模板

嵌入模板文件用于渲染正在嵌入的帖子。 自4.5以来,WordPress使用以下路径:

过滤层次结构

WordPress模板系统允许您过滤层次结构。 这意味着您可以在层次结构的特定点插入和更改东西。 过滤器(位于get_query_template()函数中)使用此过滤器名称:“{$ type} _template”其中$ type是没有.php扩展名的层次结构中的文件名。

以下是过滤器层次结构中所有模板类型的完整列表:

示例

例如,让我们采用默认的作者层次结构:

要在author.php之前添加author- {role} .php,我们可以使用'author_template'模板类型来操作实际的层次结构。 这允许对/ author/username的请求,其中username具有编辑器的作用,使用author-editor.php(如果存在于当前主题目录中)显示。

function author_role_template( $templates = '' ) { $author = get_queried_object(); $role = $author->roles[0]; if ( ! is_array( $templates ) && ! empty( $templates ) ) { $templates = locate_template( array( "author-$role.php", $templates ), false ); } elseif ( empty( $templates ) ) { $templates = locate_template( "author-$role.php", false ); } else { $new_template = locate_template( array( "author-$role.php" ) ); if ( ! empty( $new_template ) ) { array_unshift( $templates, $new_template ); } } return $templates;}add_filter( 'author_template', 'author_role_template' );

关键词:模板,主题

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭