WooCommerce 店面主题创建多个类别模板

已发表: 2020-10-12

WooCommerce 店面主题创建多个类别模板 在许多在线商店中,为类别、标签、自定义帖子类型和分类法使用不同的模板是一种常见的做法。 如果您对类别使用不同的模板,则可以在类别页面上添加特定功能。 例如,您可以添加类别图像、显示类别描述、允许用户订阅类别以及为每个类别选择不同的布局。

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档案.php 文件

复制archive.php文件的所有内容并将它们粘贴到记事本等文本编辑器中。 将此文件另存为category-design.php。

下一步是去wp-content > Themes > Storefront theme 。 将 category-design.php 文件上传到您的主题目录。

类别设计.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 中用于类别页面的模板层次结构。

此外,我还向您展示了如何创建类别模板以及如何为类别使用条件标签。

类似文章