テーマ開発・テンプレートで骨組みを作る

カテゴリ別一覧と404ページ

「イベントのお知らせだけ見たい」に応えるカテゴリ別一覧(category.php)と、迷子になった訪問者を助ける404ページ。テンプレート章の仕上げです。

お知らせが増えてくると、「イベントの記事だけ見たい」という要望が出てきます。投稿をカテゴリで仕分けて、カテゴリ別の一覧ページを作りましょう。あわせて、存在しないURLに来た人を案内する404ページも作り、テンプレートの章を締めくくります。

カテゴリの仕分けは管理画面で

まず素材の準備。管理画面の「投稿」→「カテゴリー」で、シマエナガ堂に合う分類を作ります。

  • お知らせ(日々の連絡)
  • イベント(フェア・ワークショップ)
  • メディア(雑誌掲載など)

既存の投稿を編集して、右側のパネルからカテゴリーを付け直しておきましょう。

一覧にカテゴリのチップを出す

まず、home.phpの一覧にカテゴリ名を表示します。ループの中に1行足すだけです。

<li>
  <time><?php the_time('Y.m.d'); ?></time>
  <span class="cat"><?php the_category(', '); ?></span>
  <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>

the_category(', ')は、記事のカテゴリをリンクつきで表示する関数。このリンクの行き先が、今回作るカテゴリ別一覧です。

.cat {
  font-size: 12px;
  flex-shrink: 0;
}
.cat a {
  background: #eaf4f6;
  color: #2a6f7c;
  border-radius: 999px;
  padding: 2px 10px;
  font-weight: bold;
  text-decoration: none;
}

category.php——カテゴリ専用の一覧

カテゴリのリンクを押すと、URLは/category/イベント/のような形になり、担当はcategory.phpに。中身はhome.phpとほぼ同じで、見出しだけ「いま何のカテゴリを見ているか」に変えます。

<?php get_header(); ?>

<h1 class="page-heading">
  <?php single_cat_title(); ?>のお知らせ
</h1>

<main class="section">
  <ul class="news-list">
    <?php while (have_posts()) : the_post(); ?>
      <li>
        <time><?php the_time('Y.m.d'); ?></time>
        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
      </li>
    <?php endwhile; ?>
  </ul>
  <div class="pagination"><?php the_posts_pagination(); ?></div>
</main>

<?php get_footer(); ?>

single_cat_title()が、いま表示中のカテゴリ名(「イベント」など)を出してくれます。絞りこみ自体はWordPressがURLから自動でやってくれるので、テンプレート側はループを回すだけ——メインループの便利さがよくわかる場面です。

404.php——迷子ページも自作テーマの守備範囲

存在しないURLに来たときの「ページが見つかりません」画面も、テーマの担当です。無いと素っ気ない表示になるので、シマエナガ堂らしく案内を出しましょう。

<?php get_header(); ?>

<main class="section" style="text-align: center;">
  <h1 class="page-heading">ページが見つかりませんでした</h1>
  <p>お探しのページは、移動したか削除された可能性があります。</p>
  <p><a href="<?php echo home_url(); ?>">トップページへもどる</a></p>
</main>

<?php get_footer(); ?>

確認は、ブラウザのアドレス欄に(サイトURL)/aaaのようなでたらめなURLを打つだけ。自作の404が出れば成功です。

このレッスンのまとめ

  1. カテゴリの仕分けは管理画面、カテゴリ別一覧の見た目はcategory.php——絞りこみはWordPressが自動でやる
  2. the_category()でチップを、single_cat_title()で「いま見ている分類名」を表示できる
  3. 404.phpも自作テーマの守備範囲——迷子の訪問者にトップへの帰り道を

やってみよう:カテゴリ動線と404を仕上げる

テンプレート章の総仕上げです。

  1. カテゴリー「お知らせ」「イベント」「メディア」を作り、既存の投稿に付け直す
  2. home.phpにカテゴリチップを足し、category.php404.phpを作る
  3. 一覧のチップ→カテゴリ別一覧→記事詳細、と動線がつながるのを確認する
  4. でたらめなURLを開いて、自作404が出るのを確認する

これで「トップ・会社案内・お知らせ一覧・カテゴリ別・詳細・404」——企業サイトの基本ページが全部自作テーマで動いています。次の章では、ずっとお預けだったCSSの配線から、テーマに「機能」を足していきます。