WordPress模板文件&模板层次结构
模板文件 一般来讲一个主题至少需要包含两个文件:index.php和style.css。 用文本编辑器打开主题…
模板文件
一般来讲一个主题至少需要包含两个文件:index.php和style.css。
用文本编辑器打开主题的style.css文件,在文件最开头修改下列信息,如果是自己制作主题,请添加下列信息,信息很重要哦,至少填写个主题名称:
1
2
3
4
5
6
7
8
9
|
/*
Theme Name: 这里填主题名称
Theme URI: 这里填主题介绍的网址,没有就填你的博客网址吧
Description: 这里填主题的简短介绍
Version: 版本号
Author: 作者名
Author URI: 作者的网址
Tags: 标签,多个用半角逗号隔开
*/
|
模板零件
-
header.php
用于生成网站的标题 -
footer.php
用于生成页脚 -
sidebar.php
用于生成侧边栏
常用WordPress模板文件
以下是WordPress可以识别的一些基本主题模板和文件的列表。
- index.php
- 主模板文件。在所有主题中都是必需的。
- style.css
- 主要样式表。 在所有主题中都是 必需的,并且包含您主题的信息标题。
- rtl.css
- 如果网站语言的文本方向是从右到左,则会自动包含从右到左的样式表。
- comments.php
- 评论模板。
- front-page.php
- 不管管理>设置>阅读上有什么设置,首页模板始终用作网站首页(如果存在)。
- home.php
- 主页模板默认为首页。如果您未将WordPress设置为使用静态首页,则此模板用于显示最新帖子。
- header.php
- 标题模板文件通常包含您站点的文档类型,元信息,指向样式表和脚本的链接以及其他数据。
- singular.php
- 如果
single.php
找不到帖子,则使用单个模板;如果找不到页面,page.php
则用于页面。如果singular.php
找不到,index.php
则使用。- single.php
- 当访客请求单个帖子时,将使用单个帖子模板。
- single- {post-type} .php
- 访客从自定义帖子类型请求单个帖子时使用的单个帖子模板。例如,
single-book.php
将用于显示来自名为book的自定义帖子类型的单个帖子。将index.php
被使用,如果自定义职位类型的特定查询模板不存在。- archive- {post-type} .php
- 访问者请求自定义帖子类型存档时,将使用存档帖子类型模板。例如,
archive-books.php
将用于显示来自名为books的自定义帖子类型的帖子存档。该archive.php
模板文件使用,如果archive-{post-type}.php
不存在。- page.php
- 当访客请求单个页面(内置模板)时,将使用页面模板。
- 页面-{slug} .php
- 访问者请求特定页面(例如带有“ about”块(page-about.php)的页面)时,将使用页面块模板。
- category.php
- 当访客按类别请求帖子时,将使用类别模板。
- tag.php
- 当访客按标签请求发布时,将使用标签模板。
- taxonomy.php
- 当访客请求自定义分类法中的术语时,将使用分类法术语模板。
- author.php
- 每当访客加载作者页面时,都会使用作者页面模板。
- date.php
- 当按日期或时间请求帖子时,将使用日期/时间模板。例如,使用这些条生成的页面:
http : //example.com/blog/2014/
http://example.com/blog/2014/05/
http://example.com/blog/2014/05/ 26 /- archive.php
- 当访客按类别,作者或日期请求帖子时,将使用存档模板。注意:如果存在更具体的模板(如
category.php
和)author.php
,则此模板将被覆盖date.php
。- search.php
- 搜索结果模板用于显示访问者的搜索结果。
- attachment.php
- 当查看单个附件(例如图像,pdf或其他媒体文件)时,将使用附件模板。
- image.php
- 图像附件模板是的特定版本,
attachment.php
在查看单个图像附件时使用。如果不存在,则将使用WordPressattachment.php
。- 404.php
- 当WordPress无法找到与访问者请求匹配的帖子,页面或其他内容时,将使用404模板。
模板层次结构
范例
如果您的博客位于,http://example.com/blog/
并且访客单击指向类别页面的链接(例如) http://example.com/blog/category/your-cat/
,则WordPress将在当前主题目录中查找与类别ID相匹配的模板文件,以生成正确的页面。更具体地说,WordPress遵循以下过程:
- 在当前主题的目录中查找与类别的条目匹配的模板文件。如果类别标签为“独角兽”,则WordPress将查找名为的模板文件
category-unicorns.php
。 - 如果
category-unicorns.php
丢失,并且类别的ID为4,则WordPress将查找名为的模板文件category-4.php
。 - 如果
category-4.php
缺少,WordPress将查找通用类别模板文件category.php
。 - 如果
category.php
不存在,WordPress将寻找通用存档模板archive.php
。 - 如果
archive.php
也缺少WordPress,WordPress将退回到主主题模板文件index.php
。
视觉概述
下图显示了调用哪些模板文件以基于WordPress模板层次结构生成WordPress页面。
详细
以下是类型调用模板文件的顺序
主页显示
默认情况下,WordPress将您网站的首页设置为显示您的最新博客文章。此页面称为博客文章索引。您还可以将博客文章设置为显示在单独的静态页面上。home.php
无论是用作首页还是单独的静态页面,模板文件都用于呈现博客文章索引。如果 home.php
不存在,WordPress将使用 index.php
。
home.php
index.php
front-page.php
存在,它将覆盖 home.php
模板。
首页显示
front-page.php
无论首页显示博客文章索引(如上所述)还是静态页面,模板文件均用于呈现网站的首页。主页模板优先于博客文章索引(home.php
)模板。如果front-page.php
文件不存在,WordPress将根据设置→阅读中的设置使用home.php
或page.php
文件。如果这些文件都不存在,它将使用该index.php
文件。
-
front-page.php
–用于“ 设置”→“阅读” 首页显示部分中设置的“ 您的最新帖子 ”或“ 静态页面 ” 。 -
home.php
–如果WordPress无法找到,front-page.php
并且在首页显示部分中设置了“ 您的最新帖子 ” ,它将查找。此外,当在首页显示部分中设置帖子页面时,WordPress将寻找该文件。home.php
-
page.php
–在首页显示区域中设置“ 首页 ”时。 -
index.php
–在首页显示区域中设置了“ 您的最新帖子 ” 但 不存在时,或 在首页设置但不存在时。home.php
page.php
如您所见,WordPress采取的路径有很多规则。使用上面的图表是确定WordPress将显示什么的最佳方法。
隐私权政策页面显示
该privacy-policy.php
模板文件是用来提供您网站的隐私政策页。隐私策略页面模板优先于静态页面(page.php
)模板。如果privacy-policy.php
文件不存在,WordPress将根据可用模板使用page.php
或singular.php
文件。如果这些文件都不存在,它将使用该index.php
文件。
-
privacy-policy.php
–用于设置→隐私的更改您的隐私政策页面部分中设置的隐私政策页面。 -
custom template file
– 分配给页面的页面模板。请参阅get_page_templates()
。 -
page-{slug}.php
–如果页面上没有标签privacy
,WordPress将使用page-privacy.php
。 -
page-{id}.php
–如果页面ID为6,WordPress将使用page-6.php
。 page.php
singular.php
index.php
单帖
单个帖子模板文件用于呈现单个帖子。WordPress使用以下路径:
-
single-{post-type}-{slug}.php
–(自4.4开始)首先,WordPress为特定帖子寻找模板。例如,如果帖子类型为product
,而帖子标签为dmc-12
,则WordPress将查找single-product-dmc-12.php
。 -
single-{post-type}.php
–如果帖子类型为product
,WordPress将寻找single-product.php
。 -
single.php
–然后WordPress退回到single.php
。 -
singular.php
–然后回落到singular.php
。 -
index.php
–最后,如上所述,WordPress最终回退到index.php
。
单页
用于呈现静态页面的模板文件(page
post-type)。请注意,与其他post-type不同,它page
是WordPress专用的,并使用以下路径:
-
custom template file
– 分配给页面的页面模板。请参阅get_page_templates()
。 -
page-{slug}.php
–如果页面上没有标签recent-news
,WordPress将使用page-recent-news.php
。 -
page-{id}.php
–如果页面ID为6,WordPress将使用page-6.php
。 page.php
singular.php
index.php
分类
呈现类别存档索引页面在WordPress中使用以下路径:
-
category-{slug}.php
–如果类别的类别为news
,WordPress将寻找category-news.php
。 -
category-{id}.php
–如果类别的ID为6
,WordPress将寻找category-6.php
。 category.php
archive.php
index.php
标签
为了显示标签存档索引页面,WordPress使用以下路径:
-
tag-{slug}.php
–如果标签的子标签为sometag
,WordPress将寻找tag-sometag.php
。 -
tag-{id}.php
–如果标签的ID为6
,WordPress将寻找tag-6.php
。 tag.php
archive.php
index.php
自定义分类法
自定义分类法使用的模板文件路径略有不同:
-
taxonomy-{taxonomy}-{term}.php
-如果分类学sometax
,和分类的任期someterm
,WordPress会寻找taxonomy-sometax-someterm.php.
在的情况下,后期格式,分类标准是“post_format”和术语是“后格式- {}格式。即taxonomy-post_format-post-format-link.php
用于链接发布格式。 -
taxonomy-{taxonomy}.php
–如果是分类法sometax
,WordPress将寻找taxonomy-sometax.php
。 taxonomy.php
archive.php
index.php
自定义帖子类型
自定义帖子类型使用以下路径来呈现适当的存档索引页面。
-
archive-{post_type}.php
–如果帖子类型为product
,WordPress将寻找archive-product.php
。 archive.php
index.php
(要呈现单个帖子类型模板,请参阅上面的单个帖子显示部分。)
作者显示作者显示
根据以上示例,呈现作者档案索引页面是相当说明性的:
-
author-{nicename}.php
–如果作者的好名字是matt
,WordPress将寻找author-matt.php
。 -
author-{id}.php
–如果作者的ID为6
,WordPress将寻找author-6.php
。 author.php
archive.php
index.php
日期
基于日期的存档索引页面将按您期望的方式呈现:
date.php
archive.php
index.php
搜索结果
搜索结果遵循与其他模板类型相同的模式:
search.php
index.php
404(找不到)
同样,将按以下顺序调用404模板文件:
404.php
index.php
附件
呈现附件页面(attachment
后置类型)使用以下路径:
-
{MIME-type}.php
-可以是任何的MIME类型(例如:image.php
,video.php
,pdf.php
)。对于text/plain
,使用以下路径(按顺序):text-plain.php
plain.php
text.php
attachment.php
-
single-attachment-{slug}.php
–例如,如果附件为holiday
,则WordPress将寻找single-attachment-holiday.php
。 single-attachment.php
single.php
singular.php
index.php
嵌入
嵌入模板文件用于呈现正在嵌入的帖子。从4.5开始,WordPress使用以下路径:
-
embed-{post-type}-{post_format}.php
–首先,WordPress寻找特定帖子的模板。例如,如果其发布类型为post
且具有音频格式,则WordPress将寻找embed-post-audio.php
。 -
embed-{post-type}.php
–如果帖子类型为product
,WordPress将寻找embed-product.php
。 -
embed.php
–然后WordPress退回嵌入.php
。 - 最后,WordPress最终会退回到其自己的
wp-includes/theme-compat/embed.php
模板。
非ASCII字符处理
从WordPress 4.7开始,模板名称中包含非ASCII字符的任何动态部分实际上都按该顺序支持未编码和已编码形式。您可以选择使用哪个。
这?是ID 为的名为“ Hello World ” 的页面的页面模板层次结构6
:
page-hello-world-?.php
page-hello-world-%f0%9f%98%80.php
page-6.php
page.php
singular.php
相同的行为适用于帖子,术语名称和作者好记号。
过滤层次结构
WordPress模板系统可让您过滤层次结构。这意味着您可以在层次结构的特定点插入和更改内容。过滤器(位于get_query_template()
函数中)使用以下过滤器名称:"{$type}_template"
此处$type
是模板类型。
以下是模板层次结构中所有可用过滤器的列表:
embed_template
404_template
search_template
frontpage_template
home_template
privacypolicy_template
taxonomy_template
attachment_template
single_template
page_template
singular_template
category_template
tag_template
author_template
date_template
archive_template
index_template
Example
例如,让我们采用默认的作者层次结构:
author-{nicename}.php
author-{id}.php
author.php
要添加author-{role}.php
之前author.php
,我们可以使用’author_template’模板类型来操纵实际的层次结构。这允许对/ author / username的请求,其中,如果当前主题目录中存在用户名,则用户名具有编辑者的角色,可以使用author-editor.php进行显示。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
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’ );
|
来源https://developer.wordpress.org/themes/basics/template-hierarchy/#custom-taxonomies
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
评论功能已经关闭!