お知らせ一覧ページ(category-slug.php)の作成 | SkillhubAI(スキルハブエーアイ)

お知らせ一覧ページ(category-slug.php)の作成

カテゴリが「お知らせ」の場合だけ、別デザインで一覧表示できるようテーマテンプレートを別に作ります。
file

専用テンプレートを割り当てる

スラッグと表示ページを確認

特定のカテゴリ一覧だけ専用のテンプレートで表示するために、slug(スラッグ)を使います。

WordPress管理画面の投稿 > カテゴリー を開いてください。
「お知らせ」のスラッグを確認します。
file

確認できたら、そのまま「お知らせ」下にある表示から、一覧ページを表示します。
下図のように、前回作ったcategory.phpのレイアウトで出力されているはずです。
file

専用のテンプレートを作成

「お知らせ」一覧を表示するときだけに適用される、テーマテンプレートファイルを作ります。

ファイル名で、categoryの後に、ハイフンとslugを追加すると自動で適用されます。
お知らせカテゴリのスラッグはinfoなので、category-info.phpになります。

category.phpを複製して、category-info.phpを作成してください。
file

新しくテーマに追加したcategory-info.phpを、エディタで開きます。
mainタグの上に「test」など文字を打って、お知らせカテゴリの一覧ページに反映されるか確認してみましょう。
file

category-info.phpが適用されていることが確認できたら、確認に使った文字は削除してください。

投稿の一覧表示部分を作る

表示される投稿を、お知らせ一覧ページのデザインに合わせます。
file

今回は、元となるHTMLファイル(info.html)があるので、それを使いましょう。

まず、それぞれの投稿を囲うための要素。
divタグに設定されているCSSクラスを、info.htmlで使用していたクラスに置き換えます。
file

次に、繰り返し表示する投稿上表の部分です。

info.htmlから投稿1つ分(<article> ~ </article>)をコピー。
category-info.phpの、whileタグ下に貼り付けます。
file

貼り付けたarticle要素内で、以下3箇所をWordPressのテンプレートタグに変更します。

  • 記事公開日
  • aタグのリンク先
  • 投稿タイトル

元からあった、category.phpの表示で使っていたカード部分は削除してください。
変更箇所は、以下のようになります。

category-info.php

<section class="section-padding">
  <div class="card info-wrapper">
    <?php while (have_posts()) : the_post(); ?>
      <article class="flex-container">
        <div class="info-date">
          <?php echo get_the_date(); ?>
        </div>
        <h2 class="info-title">
          <a href="<?php the_permalink() ?>">
            <?php the_title(); ?>
          </a>
        </h2>
      </article>
    <?php endwhile; ?>
  </div>
</section>

category-info.phpを保存し、お知らせのページが正しく表示されているか確認します。

file

これで、category-info.phpも完成。
ズーロッパ東京のWordPressテーマ完成です!

最終確認・調整

WordPressのテーマが完成したら、動作確認をします。

  • ヘッダーナビゲーションから各ページは開けるか
  • 一覧表示から、それぞれの投稿を開けるか
  • レイアウト崩れはないか

そのほか、整えたい所があれば調整してください。
index.phpのカード画像からも、投稿ページが開けたら便利かな…など思うところを変更してみると良いでしょう。

フッターの配置について

一覧ページで表示できる投稿数が少ない場合など、フッターの位置が上に来てしまいます。
file

【新HTML/CSS入門講座(応用編)】で解説されている方法を使うと、フッターを画面の下部に表示させることが出来ます。
今回のように全体に背景色がある場合は、bodyにベースの背景色を設定しておくと良いです。
file

h-100クラスのスタイル指定については、下記講座もしくは素材の見本ファイルをご確認ください。