一、wordpress 列表页模板运行机置
在WordPress中,列表页模板(例如文章归档页、分类目录页、标签页等)的运行机制如下:
1. 根据URL确定模板:当访问列表页时,WordPress会根据URL的规则和结构来确定使用哪个模板来显示该列表页。通常情况下,WordPress会按照以下优先级寻找模板:
- `category-{slug}.php`:用于特定分类目录的模板,其中`{slug}`是分类目录的别名(slug)。
- `category-{ID}.php`:用于特定分类目录的模板,其中`{ID}`是分类目录的ID。
- `tag-{slug}.php`:用于特定标签页的模板,其中`{slug}`是标签的别名(slug)。
- `tag-{ID}.php`:用于特定标签页的模板,其中`{ID}`是标签的ID。
- `taxonomy-{taxonomy}-{term}.php`:用于特定自定义分类法(taxonomy)和术语(term)的模板。
- `author-{user_nicename}.php`:用于特定作者的模板,其中`{user_nicename}`是作者的用户名。
- `date.php`:用于日期归档页的模板。
- `archive.php`:用于一般的归档页的模板。
- `index.php`:默认的列表页模板。
2. 调用模板文件:一旦WordPress确定了要使用的列表页模板,它将根据模板层次结构从主题文件夹中找到并调用该模板文件。通常,列表页模板文件的命名约定是根据上述规则进行命名的。例如,如果要显示分类目录`example-category`的列表页,WordPress将查找并调用`category-example-category.php`文件。
3. 运行模板:一旦找到并调用了列表页模板文件,WordPress会执行该模板文件中的代码,并根据需要输出文章、分类、标签等相关的内容。
总结:
WordPress的列表页模板的运行机制是通过确定URL对应的模板文件来展示列表页内容。根据不同的规则和优先级,WordPress会寻找合适的模板文件,并执行其中的代码以生成并显示列表页的内容。
二、wordpress 列表页模板运行机置
在WordPress中,列表页模板(例如文章归档页、分类目录页、标签页等)的运行机制如下:
1. 根据URL确定模板:当访问列表页时,WordPress会根据URL的规则和结构来确定使用哪个模板来显示该列表页。通常情况下,WordPress会按照以下优先级寻找模板:
- `category-{slug}.php`:用于特定分类目录的模板,其中`{slug}`是分类目录的别名(slug)。
- `category-{ID}.php`:用于特定分类目录的模板,其中`{ID}`是分类目录的ID。
- `tag-{slug}.php`:用于特定标签页的模板,其中`{slug}`是标签的别名(slug)。
- `tag-{ID}.php`:用于特定标签页的模板,其中`{ID}`是标签的ID。
- `taxonomy-{taxonomy}-{term}.php`:用于特定自定义分类法(taxonomy)和术语(term)的模板。
- `author-{user_nicename}.php`:用于特定作者的模板,其中`{user_nicename}`是作者的用户名。
- `date.php`:用于日期归档页的模板。
- `archive.php`:用于一般的归档页的模板。
- `index.php`:默认的列表页模板。
2. 调用模板文件:一旦WordPress确定了要使用的列表页模板,它将根据模板层次结构从主题文件夹中找到并调用该模板文件。通常,列表页模板文件的命名约定是根据上述规则进行命名的。例如,如果要显示分类目录`example-category`的列表页,WordPress将查找并调用`category-example-category.php`文件。
3. 运行模板:一旦找到并调用了列表页模板文件,WordPress会执行该模板文件中的代码,并根据需要输出文章、分类、标签等相关的内容。
总结:
WordPress的列表页模板的运行机制是通过确定URL对应的模板文件来展示列表页内容。根据不同的规则和优先级,WordPress会寻找合适的模板文件,并执行其中的代码以生成并显示列表页的内容。
三、如何让小类列表模板使用大类列表模板
在WordPress中,如果你希望在小类别列表页面中使用大类别列表页面的模板,可以通过以下步骤实现:
创建大类别列表模板:首先,你需要创建一个用于显示大类别列表的模板文件。你可以在主题文件夹中创建一个新的模板文件,例如命名为category.php
。这将成为你的大类别列表模板。
编辑小类别列表模板:打开你的小类别列表模板文件,通常是category-{slug}.php
或category-{ID}.php
,其中{slug}
或{ID}
表示小类别的别名或ID。
引入大类别列表模板:在小类别列表模板文件中的合适位置,添加以下代码:phpCopy code
这行代码使用get_template_part()
函数来引入大类别列表模板文件。
保存并上传文件:保存对小类别列表模板文件的更改,并通过FTP或其他方式将文件上传到你的WordPress主题文件夹。
现在,当你访问小类别列表页面时,它将使用小类别列表模板文件,并在该模板中引入大类别列表模板文件,以便重用大类别列表模板的代码和样式。请确保你的大类别列表模板文件中包含你想要的代码和样式,并且适应小类别列表的上下文和数据。
四、这样会新建很多文件,有没有不新建这么多文件的方法。
如果你不想新建太多文件来实现小类别列表使用大类别列表的模板,可以尝试以下方法:
5.使用条件语句:在小类别列表模板文件中,可以使用条件语句来判断当前分类是否为大类别,并根据需要加载相应的代码块或样式。例如,你可以使用is_category()
函数来检查当前分类是否为指定的大类别,然后根据条件加载相应的代码。
在上面的示例中,你可以根据自己的需要自定义条件语句,例如使用不同的大类别别名或ID。
6. 利用模板部分(Template Part):WordPress提供了模板部分(Template Part)的功能,它允许你将某个代码块封装为一个可重用的模板文件。你可以创建一个包含大类别列表代码和样式的模板部分,例如命名为template-part-category.php
。然后,在小类别列表模板文件中使用get_template_part()
函数引入该模板部分。
这样,你只需维护一个包含大类别列表的模板部分文件,而不需要新建多个模板文件。
通过以上方法,你可以在小类别列表模板中根据条件加载相应的代码块或模板部分,实现小类别列表使用大类别列表的效果,同时避免创建过多的模板文件。请根据自己的需求和具体情况选择适合的方法。
五、如何设置一种文章类型一个模板文件?
要为一种特定的文章类型设置一个模板文件,你可以按照以下步骤进行操作:
创建模板文件:在你的主题文件夹中创建一个新的模板文件,用于显示特定文章类型的内容。根据你的需要,可以选择使用不同的文件名,但建议遵循WordPress的模板命名约定。例如,你可以创建一个名为single-{post_type}.php
的文件,其中{post_type}
是你要针对的文章类型的别名(slug)。
编辑模板文件:打开新创建的模板文件,并根据你的需求编辑其中的代码。你可以根据需要自定义该文章类型的内容和样式。
保存并上传文件:保存对模板文件的更改,并通过FTP或其他方式将文件上传到你的WordPress主题文件夹。
现在,WordPress会自动根据文章类型和模板文件的命名规则,当你访问该特定文章类型的单篇文章时,会使用你所创建的模板文件进行显示。确保在模板文件中包含你想要的代码和样式,以适应该特定文章类型的内容。
请注意,如果你的模板文件未找到或未设置,WordPress将默认使用通用的single.php
文件来显示所有文章类型的单篇文章。
如果是以下方式注册文章类型,则类型模板命名方式是archive-products_post.php,网址输入方式是,http://www.a20.cc/products-post/,其中“文章分类”的模板不会调用“文章类型”的模板
function products_post_type() {
$labels = array(
'name' => '产品', // 自定义文章类型的名称
'singular_name' => '产品', // 自定义文章类型的单数名称
'menu_name' => '产品', // 后台菜单中显示的名称
'add_new' => '添加产品', // 添加新文章的按钮文本
'add_new_item' => '添加产品', // 添加新文章页面的标题
'edit' => '编辑', // 编辑按钮的文本
'edit_item' => '编辑', // 编辑文章页面的标题
'new_item' => '编辑', // 添加新文章页面的标题
'view' => '查看', // 查看按钮的文本
'view_item' => '查看标题', // 查看文章页面的标题
'search_items' => '搜索产品', // 搜索文章的文本
'not_found' => '没找到产品', // 没有找到文章时的文本
'not_found_in_trash' => '没找到产品', // 回收站中没有找到文章时的文本
'parent' => '父级产品' // 父级文章的文本(如果有)
);
$args = array(
'labels' => $labels,
'public' => true, // 是否公开可见
'publicly_queryable' => true, // 是否可以通过公共查询访问
'show_ui' => true, // 是否显示在管理界面
'show_in_menu' => true, // 是否显示在后台菜单中
'query_var' => true, // 是否可用于URL查询
'rewrite' => array('slug' => 'products-post'), // 重写规则,定义文章的URL
'capability_type' => 'post', // 用户角色访问权限
'has_archive' => true, // 是否具有存档页面
'hierarchical' => false, // 是否具有层次结构
'menu_position' => 5, // 在后台菜单中的位置
'supports' => array('title', 'editor', 'thumbnail') // 文章支持的功能(标题,编辑器,缩略图等)
);
register_post_type('products_post', $args); // 注册自定义文章类型
$taxonomy_labels = array(
'name' => '产品分类',
'singular_name' => '产品分类',
'menu_name' => '产品分类',
'all_items' => '所有分类',
'edit_item' => '编辑分类',
'view_item' => '查看分类',
'update_item' => '更新分类',
'add_new_item' => '添加分类',
'new_item_name' => '分类名称',
'parent_item' => '父分类',
'parent_item_colon' => '父分类:',
'search_items' => '搜索分类',
'popular_items' => '流行分类',
'separate_items_with_commas' => '用逗号分隔类别',
'add_or_remove_items' => '添加或删除类别',
'choose_from_most_used' => '从最常用的类别中进行选择',
'not_found' => '找不到类别'
);
$taxonomy_args = array(
'labels' => $taxonomy_labels,
'hierarchical' => true,
'public' => true,
'rewrite' => array('slug' => 'products-category')
);
register_taxonomy('products_category', 'products_post', $taxonomy_args);
$tag_labels = array(
'name' => '产品标签',
'singular_name' => '产品标签',
'menu_name' => '产品标签',
'search_items' => '搜索标签',
'popular_items' => '热门标签',
'all_items' => '所有标签',
'edit_item' => '编辑标签',
'update_item' => '更新标签',
'add_new_item' => '添加标签',
'new_item_name' => '新标签',
'not_found' => '没有找到标签'
);
$tag_args = array(
'labels' => $tag_labels,
'public' => true,
'hierarchical' => false,
'rewrite' => array('slug' => 'products-tag')
);
register_taxonomy('products_tag', 'products_post', $tag_args);
}
add_action('init', 'products_post_type');
六、如何设置一种文章类型一个对应类型的列表模板文件及一个对应的详情页模板文件?
要为一种特定的文章类型设置一个对应的列表模板文件和详情页模板文件,你可以按照以下步骤进行操作:
1. 创建列表模板文件:在你的主题文件夹中创建一个新的模板文件,用于显示特定文章类型的列表页面。根据你的需要,可以选择使用不同的文件名,但建议遵循WordPress的模板命名约定。例如,你可以创建一个名为`archive-{post_type}.php`的文件,其中`{post_type}`是你要针对的文章类型的别名(slug)。
2. 编辑列表模板文件:打开新创建的列表模板文件,并根据你的需求编辑其中的代码。你可以根据需要自定义该文章类型列表页面的内容和样式。
3. 创建详情页模板文件:在你的主题文件夹中创建另一个新的模板文件,用于显示特定文章类型的详情页。同样,你可以选择使用不同的文件名,但建议遵循WordPress的模板命名约定。例如,你可以创建一个名为`single-{post_type}.php`的文件,其中`{post_type}`是你要针对的文章类型的别名(slug)。
4. 编辑详情页模板文件:打开新创建的详情页模板文件,并根据你的需求编辑其中的代码。你可以根据需要自定义该文章类型详情页的内容和样式。
5. 保存并上传文件:保存对模板文件的更改,并通过FTP或其他方式将文件上传到你的WordPress主题文件夹。
现在,当你访问该特定文章类型的列表页面时,WordPress会自动使用你所创建的列表模板文件进行显示。当你访问该特定文章类型的单篇文章时,WordPress会自动使用你所创建的详情页模板文件进行显示。确保在模板文件中包含你想要的代码和样式,以适应该特定文章类型的列表和详情页面的内容。
请注意,如果你的模板文件未找到或未设置,WordPress将默认使用通用的`archive.php`文件来显示所有文章类型的列表页面,以及使用通用的`single.php`文件来显示所有文章类型的单篇文章页面。
七、详细方式
首页的继承方式为:
front-page.php – 不管选择显示最新文章还是静态页面,都优先查找这个模版。
home.php – 如果主页显示选择了「最新文章」,并且没有上面的模版,会查找使用这个模版
page.php – 如果主页显示选择了「静态页面」,并且没有 front-page.php 模版,则会查找使用这个模版
index.php – 如果上面的模版都没找到,则会使用这个模版
文章、自定义文章类型模版
文章、页面、文章类型内容页,本质上都是文章页面,按文章页面的调用规则类似,都遵循从具体到通用的规则。下面列表中是文章页面的调用规则,优先级从上到下递减。
模版名称中 {} 包含的部分是对应的文章数据:
{post-type} 是文章类型名,如:single-product.php
{slug} 是文章别名,如:single-hello.php
{id} 是文章 ID,如 single-1.php
文章模版、自定义文章类型内容页模版调用优先级规则
single-{post-type}-{slug}.php.php
single-{post-type}.php
single-{slug}.php
single.php
singular.php
分类法存档模版
存档页,也叫列表页,是一系列文章内容的列表,和内容页模版一样,存档页模版的调用规则也是从具体到通用。
模版名称中的 {} 包含的部分是存档页对应的数据:
{taxonomy} 是自定义文章类型名称,如 taxonomy-product_cat.php 中的 product_cat 对应的就是模版名称中的 {taxonomy}
{term} 是自定义文章类型项目的别名,如 taxonomy-product_cat-cat1.php 中的 cat1 对应的就是模版名称中的 {term}
自定义分类法存档模版优先级
taxonomy-{taxonomy}-{term}.php
taxonomy-{taxonomy}.php
taxonomy.php
archive.php
index.php
分类目录存档模版
分类目录是 WordPress 内置的分类方法,其模版优先级和自定义分类法模版的优先级类型,只不过少了前面的 taoxnomy。
category-{slug}.php
category-{id}.php
category.php
archive.php
index.php
文章类型存档模版
文章类型存档页显示属于该文章类型的所有文章,其规则相对前面几种,要简单得多,其中 {post_type} 是文章类型的名称,如 archive-product.php。
archive-{post_type}.php
archive.php
index.php
标签存档模版
标签也是 WordPress 内置的分类方法,其模版优先级和自定义分类法模版的优先级类型,只不过少了前面的 taoxnomy。
tag-{slug}.php
tag-{id}.php
archive.php
index.php
作者存档模版
作者存档页显示的是某作者发表的所有文章,其优先级规则也比较简单。其中 {nicename} 是用户数据表中的 user_nicename 字段,{id} 是作者的 ID,我们可以为某作者制作其专有的模版作为他的专栏页。
author-{nicename}.php
author-{id}.php
author.php
archive.php
index.php
日期存档页
日期存档页是某个时间段发表的文章的集合,优先级规则如下:
date.php
archive.php
index.php
搜索结果页面模版
搜索结果页面是某个关键词搜索结果的存档页,一般是 search.php,如果没有,则使用 index.php
search.php
index.php
404页面模版
404 页面模版是页面找不到时使用的页面模版,我们可以使用 404.php 做一个个性化的 404 页面。
404.php
index.php
附件模版
附件本质上也是一个文章类型,不过因为其比较特殊,我们可以安装附件类型来为其指定模版,比如一个 mp4 视频页面,我们可以为其指定一个 mp4.php 来使用自定义播放器来播放视频。附件模版的优先级规则如下:
{MIME-type}.php
text-plain.php
plain.php
text.php
attachment.php
single-attachment-{slug}.php
single-attachment.php
single.php
singular.php
index.php
Embed模版
Embed 是把文章嵌入到其他页面或其他网站时使用的模版页面,我们可以根据以下规则创建模版来自定义文章嵌入的外观。
embed-{post-type}-{post_format}.php
embed-{post-type}.php
embed.php
wp-includes/theme-compat/embed.php template.
八、自定义文章类型的分类页的模板机置是什么样的?
自定义文章类型的分类页的模板机制与默认文章类型的分类页有些不同。在 WordPress 中,自定义文章类型的分类页使用以下命名约定来确定模板文件的调用:
1. `taxonomy-{taxonomy}-{term}.php`:如果你为自定义文章类型创建了特定的分类模板文件,且分类页面所属的自定义分类法有对应的模板,WordPress 将首先调用该模板。其中,`{taxonomy}` 是自定义分类法的名称,`{term}` 是当前分类的别名(slug)。
2. `taxonomy-{taxonomy}.php`:如果没有找到特定的分类模板文件,WordPress 将尝试使用这个模板。其中,`{taxonomy}` 是自定义分类法的名称。
3. `taxonomy.php`:如果上述模板文件都不存在,WordPress 将尝试使用这个默认的分类模板。
4. `archive.php`:如果上述模板文件都不存在,WordPress 将回退到使用 `archive.php` 模板。
5. `index.php`:如果上述模板文件都不存在,WordPress 将最终使用主题的默认模板文件 `index.php`。
因此,你可以根据上述命名约定,在你的主题文件夹中创建自定义文章类型的分类页模板。
举例来说,如果你有一个自定义文章类型 "books",它有一个名为 "genre" 的自定义分类法。你可以按照以下方式创建分类页模板:
- 如果你想为特定的分类术语 "fiction" 创建模板,可以创建一个名为 `taxonomy-genre-fiction.php` 的模板文件。
- 如果你希望为整个 "genre" 分类法创建一个通用模板,可以创建一个名为 `taxonomy-genre.php` 的模板文件。
- 如果你没有为特定的自定义分类法创建模板文件,可以使用 `taxonomy.php` 模板。
- 如果连 `taxonomy.php` 也不存在,WordPress 将回退到使用 `archive.php` 模板。
- 如果以上模板都不存在,将使用 `index.php` 作为默认的模板。
通过使用这些命名约定,你可以为自定义文章类型的分类页创建特定的模板,并根据需要进行自定义展示。