分类页与标签页

作者: admin 分类: wordpress主题制作教程 发布时间: 2026-11-06 18:45

category.php 的结构

分类页跟首页很像,区别是:顶部要显示“这是哪个分类”。

<?php get_header(); ?>

<div class="content">
    <h1><?php single_cat_title(); ?></h1>

    <?php if ( category_description() ) : ?>
        <div class="cat-desc"><?php echo category_description(); ?></div>
    <?php endif; ?>

    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
        <article class="post-item">
            <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
            <p><?php the_excerpt(); ?></p>
        </article>
    <?php endwhile; endif; ?>

    <?php the_posts_pagination( array( 'prev_text' => '上一页', 'next_text' => '下一页' ) ); ?>
</div>

<?php get_footer(); ?>

三个关键函数

  • single_cat_title():输出当前分类名(直接输出,不返回);
  • category_description():输出分类描述(后台“分类目录”里填的那段);
  • the_posts_pagination():分页(主查询)。

注意 category_description() 外面那层 if:分类没填描述时,它返回空字符串,直接输出会留一个空的 div。

标签页怎么办

两个选择:

  1. 建一个 tag.php:内容跟 category.php 几乎一样,只是把 single_cat_title() 换成 single_tag_title();
  2. 建一个 archive.php:分类、标签、日期归档通用,内部用 is_category() 等判断显示什么标题。

推荐第二种。archive.php 一个文件管三种页面,不用维护三份。

一个通用写法:

<?php
if ( is_category() ) {
    $title = single_cat_title( '', false );
} elseif ( is_tag() ) {
    $title = single_tag_title( '', false );
} elseif ( is_date() ) {
    $title = get_the_archive_title();
} else {
    $title = '文章归档';
}
?>
<h1><?php echo esc_html( $title ); ?></h1>

注意这里用的是 single_cat_title('', false)——第二个参数 false 表示“返回字符串,不直接输出”。这样才能拼进变量。

分类页的 SEO 注意

分类页最容易出的问题是“内容重复”:多个分类页显示同一批文章。

解决办法:

  • 每个分类写一段独有的描述(category_description 有东西可输出);
  • 分类名要具体,别用“其他”“杂项”;
  • 如果某个分类只有一两篇文章,考虑合并到别的分类。

小结

一句话记住:分类页 = 分类标题 + 描述 + 循环 + 分页;标签页可用一个 archive.php 统一管。

下一篇做独立页面。

本系列导航

相关文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Powered by 草根站长笔记 © 2015-2026 草根站长笔记 Inc.版权所有,禁止转载