wordpress 为分类定模板-WordPress分类法(Taxonomies)终极指南(转)

这可以专门用于格式化页面上名为“新闻”的动物分类中的所有文章,使其具有与其他文章中过滤的文章不同的外观。

archive.php 类别模板将提供最通用的控制形式。 它为您的所有档案提供特定的布局。 此页面显示您的文章列表。

分类层次

当涉及类别时,WordPress 将查看category-{slug}.php 文件。 如果没有,WordPress 会尝试查找下一个连续层次结构级别的文件,即类别-{ID}.php,依此类推。

当 WordPress 找不到 archive.php 模板文件或其他专用模板时,它将自动恢复为使用 index.php 的默认行为。

分类层次结构如下所示:

category-{slug}.php:例如,如果某个类别有一个名为“pepperoni”的 slug,WordPress 将查找名为category-pepperoni.php 的文件。 category-{ID}.php:例如,如果您的类别ID是“8”,WordPress将查找名为category-9.php的文件。 category.phparchive.phpindex.php 标签层次结构

标签到位后,WordPress 将查找特定的 tag-{slug}.php 文件。 如果 WordPress 找不到它,它将在下一个层次结构级别中查找所需的文件,即 tag-{id}.php 等。

当 WordPress 找不到任何 archive.php 模板文件或私有模板时,它将恢复为使用 index.php 的默认行为。

标签层次结构如下所示:

tag-{slug}.php:例如,如果您的标签有一个名为“drpepper”的标签,WordPress 将查找名为 tag.drpepper.php 的文件。 tag-{id}.php:例如,如果标签的 ID 为“3”,WordPress 将查找名为 tag-3.php 的文件。 tag.phparchive.phpindex.php 自定义分类层次结构

自定义分类层次结构的工作方式与上面讨论的标签和分类层次结构非常相似。

WordPress 首先会查找taxonomy-{taxonomy}-{term}.php。 如果没有找到,它会在层次结构中查找下一个文件,即taxonomy-{taxonomy}.php,依此类推。

当WordPress找不到任何archive.php模板文件或专用模板时,它将恢复到使用index.php的默认行为。

自定义分类层次结构如下:

taxonomy-{taxonomy}-{term}.php:例如,如果您的分类法称为“taxes”,并且同一分类法的术语(term)是“statelevel”,则 WordPress 将查找名为taxonomy-taxes-statelevel 的分类法.php 文件。 。 taxonomy-{taxonomy}.php:例如,当分类法称为“taxes”时,WordPress 会查找名为taxonomy-taxes.php 的文件。 taxonomy.phparchive.phpindex.php如何创建分类模板文件

一旦您决定要使用分类法为您的内容创建自定义设计,您从哪里开始?

最好不要从空白文件开始。 相反,只需复制层次结构中的下一个文件(如果存在)。

假设已经创建 archive.php,创建一个副本并将其命名为category.php。 然后修改此文件以满足您的特定设计目标和需求。

如果您还没有 archive.php 文件wordpress 为分类定模板,您可以在主题中使用 index.php 文件,复制该文件并将其用作起点。

创建任何分类模板文件时可以遵循相同的步骤。 只需使用category.php、index.php、tag.php 或archive.php 的副本作为起点。

如何向类别页面添加文本

如果您想向类别页面添加文本,有多种方法。

文章上方的静态文本

当您想要在类别页面上的文章列表之前显示静态文本(所有类别的所有文章的文本始终保持相同)时,请使用此方法。

打开一个文件。 在模板文件的“循环”部分上方,只需插入以下代码:

<p>
这是一些文本,将显示在“分类”页面的顶部。
</p>

文本只会显示在该类别内文章的存档页面上。

如何在某些类别页面上放置不同的文本

如果您希望根据访问者正在使用的特定类别页面显示不同的文本,请考虑将一些默认文本直接添加到主category.php 文件中。

然后,您可以创建许多独特的category-{slug}.php 文件,每个文件都有自己的文本版本。 问题是这会创建很多主题文件。

要解决此问题,请使用条件标签。

循环结束后wordpress 为分类定模板,再次添加以下代码:

<?php if (is_category('分类A')) : ?>
<p>这是分类A将显示的文本</p>
<?php elseif (is_category('分类B')) : ?>
<p>这是分类B将显示的文本</p>
<?php else : ?>
<p>其他分类将显示的文本</p>
<?php endif; ?>

该代码将:

如何仅在存档的第一页上显示文本

如果您的文章太多而无法放在单个存档页面上,则该类别将分为多个页面。 在这种情况下,您可能希望在结果的第一页上向用户显示静态文本。

为此,您需要使用 PHP 的 if 语句来查找 WordPress 变量 $paged 的​​值。

这是您将粘贴到“循环”上方的内容:

<?php if ( $paged < 2 ) : ?>
<p>显示在存档第一页的文本</p>
<?php else : ?>
<?php endif; ?>

通过使用此代码,代码将询问显示的页面是否是存档的第一页。 启用后,将显示特定于第一页的文本。