WooCommerce 店面主题创建多个类别模板
已发表: 2020-10-12在许多在线商店中,为类别、标签、自定义帖子类型和分类法使用不同的模板是一种常见的做法。 如果您对类别使用不同的模板,则可以在类别页面上添加特定功能。 例如,您可以添加类别图像、显示类别描述、允许用户订阅类别以及为每个类别选择不同的布局。
WooCommerce 店面主题创建多个类别模板
在这个简短的教程中,我将向您展示如何在您的 WooCommerce 商店中创建类别模板。
类别页面的模板层次结构
WordPress 有一个强大的模板系统,允许您通过为不同的网站部分使用不同的模板来创建主题。 在显示任何页面时,WordPress 会以预定义的层次顺序查找模板。 例如,要显示类别页面,它会按以下顺序查找模板:
category-slug.php > category-id.php > category.php > archive.php > index.php
它将查找的第一个模板是使用类别 slug 特定于该特定类别的模板。 category-design.php 模板将用于显示“设计”类别。 但是,如果没有找到 category-slug 模板,WordPress 将寻找一个类别 ID 模板。
然后它将查找通用类别模板,通常是 category.php。 但是,如果不存在通用类别模板,WordPress 将寻找通用归档模板。
之后,它将使用 index.php 模板来显示类别。
如何创建类别模板
典型的 category.php 模板如下所示:
<?php /** * 一个简单的类别模板 */ get_header(); ?> <section id="primary" class="site-content"> <div id="content" 角色="main"> <?php // 检查是否有要显示的帖子 如果(有_posts()):?> <header class="archive-header"> <h1 class="archive-title">分类:<?php single_cat_title('', false); ?></h1> <?php // 显示可选的类别描述 如果(类别描述()):?> <div class="archive-meta"><?php echo category_description(); ?></div> <?php endif; ?> </标题> <?php // 循环 而(有_posts()):the_post(); ?> <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="永久链接到<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2> <small><?php the_time('F jS, Y') ?> by <?php the_author_posts_link() ?></small> <div class="entry"> <?php the_content(); ?> <p class="postmetadata"><?php comments_popup_link('还没有评论', '1 条评论', '% 评论', 'comments-link', '评论关闭'); ?></p> </div> <?php 结束; 其他:?> <p>抱歉,没有符合您条件的帖子。</p> <?php endif; ?> </div> </节> <?php get_sidebar(); ?> <?php get_footer(); ?>
让我们假设您有一个名为“Classy Clothes”的类别,其类别标签为“classy”,并且您希望以与其他类别不同的方式显示此类别。 可以通过为该特定类别创建模板来实现此结果。
为此,请转到外观 > 编辑器。 您将在右侧看到一些主题文件。 点击archive.php 。 如果不存在,请查找category.php 。 但是,如果您使用的是 Storefront 主题,您会发现archive.php 。
复制archive.php文件的所有内容并将它们粘贴到记事本等文本编辑器中。 将此文件另存为category-design.php。
下一步是去wp-content > Themes > Storefront theme 。 将 category-design.php 文件上传到您的主题目录。
值得一提的是,您对此模板所做的任何更改都只会出现在此特定类别的存档页面中。 您可以使用此技术为任意数量的类别创建模板。 您只需要使用 category-{category-slug}.php 作为文件名。 类别 slug 位于 WordPress 管理区域的类别部分。
这是 category-slug.php 模板的另一个示例。 和 category.php 模板一样,只是改动不大:
<?php /** * 一个简单的类别模板 */ get_header(); ?> <section id="primary" class="site-content"> <div id="content" 角色="main"> <?php // 检查是否有要显示的帖子 如果(有_posts()):?> <header class="archive-header"> <?php // 因为这个模板只会用于设计类 // 我们可以手动添加类别标题和描述。 // 甚至添加图像或更改布局 ?> <h1 class="archive-title">设计文章</h1> <div class="archive-meta"> 关于设计和网络的文章和教程。 </div> </标题> <?php // 循环 而(有_posts()):the_post(); <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="永久链接到<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2> <small><?php the_time('F jS, Y') ?> by <?php the_author_posts_link() ?></small> <div class="entry"> <?php the_excerpt(); ?> <p class="postmetadata"><?php comments_popup_link('还没有评论', '1 条评论', '% 评论', 'comments-link', '评论关闭'); ?></p> </div> <?php 结束; // 结束循环 其他:?> <p>抱歉,没有符合您条件的帖子。</p> <?php endif; ?> </div> </节> <?php get_sidebar(); ?> <?php get_footer(); ?>
但是,如果您不想使用 category-slug 模板,那么您可以使用 category-id 模板为特定的类别 ID 创建模板
如何为类别使用条件标签
当您为主题创建模板时,您需要确定是否需要额外的模板。 这是因为在某些情况下,您想要制作的不是太复杂,并且可以使用通用模板中的条件标签来实现。
WordPress 支持许多条件标签。 其中之一是 is_category() 条件标记。 如果条件匹配,您可以使用它来更改模板以显示不同的输出。 例如,您可能希望在某个类别的类别存档页面上显示一些额外信息。 为此,只需在 <?php if ( have_posts() ) : ?> 之后的 category.php 文件中添加此代码。
<header class="archive-header"> <?php if(is_category('精选')) : ?> <h1 class="archive-title">专题文章:</h1> <?php 其他:?> <h1 class="archive-title">分类存档:<?php single_cat_title(); ?> </h1> <?php endif; ?> </标题>
结论
在这篇文章中,我强调了您可以为类别、标签、自定义帖子类型和分类法使用不同的模板。 此外,我还分享了 WordPress 中用于类别页面的模板层次结构。
此外,我还向您展示了如何创建类别模板以及如何为类别使用条件标签。
类似文章
- 如何将自定义帖子类型添加到“一目了然”仪表板小部件 WordPress
- 如何在没有插件的情况下在 WordPress 中创建自定义帖子类型
- 如何将默认内容添加到自定义帖子类型编辑器
- 如何在 the_content 之前或之后添加内容以及在自定义帖子类型中
- 如何从自定义帖子类型中删除或隐藏评论 » 禁用自定义帖子类型中的评论
- 如何为自定义帖子类型创建 WordPress 分页
- 如何在 WordPress 帖子和自定义帖子类型中删除或禁用 autop