WordPress 模板层级(二)

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

  • category- {slug} .php – 如果类别的lug lug是新闻,WordPress将会查找category-news.php。
  • category- {id} .php – 如果类别的ID为6,WordPress将寻找类别为6.php。
  • category.php
  • archive.php
  • index.php 

标签

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

  • tag- {slug} .php – 如果标签的插件是某个标签,WordPress将会查找tag-sometag.php。
  • tag- {id} .php – 如果标签的ID为6,WordPress将寻找标签6.php。
  • tag.php
  • archive.php
  • index.php

自定义分类

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

  • taxonomy-{taxonomy}-{term}.php – 如果分类是某种类型,而分类学术语是某种语言,则WordPress将寻
    找分类法。 在发布格式的情况下,分类是“post_format”,术语是“post-format- {format}”。 即链接后
    期格式的taxonomy-post_format-post-format-link.php。
  • taxonomy-{taxonomy}.php – 如果分类是多数,WordPress会寻找分类法 – sometax.php。
  • taxonomy.php
  • archive.php
  • index.php 

自定义内容类型

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

  • archive- {post_type} .php – 如果帖子类型是产品,WordPress将寻找archive-product.php。
  • archive.php
  • index.php

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

作者显示

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

  • author- {nicename} .php – 如果作者的漂亮的名字是哑光,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

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

  • MIME_type.php – 它可以是任何MIME类型(例如:image.php,video.php,application.php)。 对于
  • text / plain,使用以下路径(顺序):
  • text_plain.php
  • plain.php
  • text.php
  • attachment.php
  • single-attachment.php
  • single.php
  • index.php

嵌入模板

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

  • embed- {post-type} – {post_format} .php – 首先,WordPress寻找特定帖子的模板。 例如,如果其帖子类
    型是产品,并且具有音频格式,则WordPress将寻找embed-product-audio.php。
  • embed- {post-type} .php – 如果帖子类型是汽车,WordPress会寻找embed-car.php。
  • embed.php – WordPress然后回到embed.php。
  • 最后,WordPress最终还是回到wp-includes/theme-compat/embed.php

过滤层次结构

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

  • index_template
  • 404_template
  • archive_template
  • author_template
  • category_template
  • tag_template
  • taxonomy_template
  • date_template
  • home_template
  • front_page_template
  • page_template
  • paged_template
  • search_template
  • single_template
  • text_template, plain_template, text_plain_template (all mime types)
  • attachment_template
  • comments_popup
  • embed_template

示例

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

  • author-{nicename}.php
  • author-{id}.php
  • author.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' );
WordPress 专栏Wordpress主题开发专栏汇总主题基础

规划 WordPresss 主题文件

2022-10-3 17:07:49

专栏汇总前端技术专栏

前端 CSS 框架系列

2022-10-11 23:11:08

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索