【WordPress】お知らせ一覧にカテゴリーを表示する方法【オリジナルテーマ】

お知らせ一覧にカテゴリーを表示する方法のサムネイル
SIM

WordPressのお知らせ一覧にカテゴリー名を表示させ、CSSで装飾を変更する方法を紹介します。

目次

完成イメージ

完成イメージは下記のとおりで、各お知らせに対してカテゴリーを表示させ、各カテゴリーを識別しやすいようにCSSで装飾します。

PHP記述例

お知らせ一覧のループ部分のPHP記述例

コードの意味はコメントアウトしましたが、全文コードは直接関係ない情報も次節から関係箇所を抜粋して解説します。

<!-- お知らせ一覧 -->
<ul class="news-info_wrapper">
  <?php
  // ページ番号の取得
  $paged = get_query_var('paged') ? get_query_var('paged') : 1;
  $args = array(
    'post_type' => 'post', //投稿タイプ
    'posts_per_page' => 10, //1ページの表示数
    'paged' => $paged //何ページ目の情報を取得するかを指定
  );

  // ここからループ構造
  $the_query = new WP_Query($args);
  if ($the_query->have_posts()) : while ($the_query->have_posts()) : $the_query->the_post(); 

  //カテゴリーの各配列を変数化
  $cat = get_the_category(); // カテゴリの配列を返すWordPress関数を変数化
  $catslug = $cat[0]-> slug; // カテゴリslug配列の変数化(CSSを書く時のClass属性として利用)
  $cat_name = $cat[0]-> name; // カテゴリ名配列の変数化
  ?>

  <li class="news-row_wrapper">
    <div class="news-date_wrapper">
      <!-- 投稿日表示 -->
      <div class="news-date"><?php the_time('Y年n月j日') ?></div>
      <!-- カテゴリ名表示(カテゴリ名slugでクラス付与・リンクなし) -->
      <div class="news-classification">
        <div class="<?php echo esc_attr($catslug); ?>"><?php echo esc_html($cat_name); ?></div>
      </div>
    </div>
    <div class="news-content">
      <!-- お知らせ内容表示 -->
      <p><?php the_content(); ?></p>
    </div>
  </li>
  <?php endwhile; ?>
  <?php wp_reset_postdata(); ?>
  <?php endif;
  ?>
</ul>

カテゴリー配列の変数化|カテゴリー名とslug

上のお知らせ一覧コード全文からカテゴリ配列の変数化部分を抜粋(16-21行目)したのが下記記述例です。

//カテゴリーの各配列を変数化
<?php
$cat = get_the_category(); // カテゴリの配列を返すWordPress関数を変数化
$catslug = $cat[0]-> slug; // カテゴリslug配列の変数化(CSSを書く時のClass属性として利用)
$cat_name = $cat[0]-> name; // カテゴリ名配列の変数化
?>

カテゴリー表示するために使いたい配列は、カテゴリーのslugとnameです。

カテゴリー表示に必要な配列
  • slug:カテゴリーのスラッグ(パーマリンクの一部の文字列)。カテゴリーslugをCSS変更のためのClass属性として利用します。
  • name:カテゴリー名の文字列。これをカテゴリー名として利用します。

これらの配列を返すWordPress関数が、get_the_category(); で、上の例では便宜上、$catと変数化して、カテゴリーのslugとnameを返す変数($catslug$cat_name)を作っています。これらの変数名は好みの英数字で構いません。

カテゴリー配列の取得|カテゴリー名とslug

上で作った変数を利用して、実際に各カテゴリーのslug(クラス属性)とname(名称)を表示させるコード(27-30行目)は下記のとおりです。

<!-- カテゴリ名表示(カテゴリ名slugでクラス付与・リンクなし) -->
<div class="news-classification">
  <div class="<?php echo esc_attr($catslug); ?>"><?php echo esc_html($cat_name); ?></div>
</div>

下にその部分をさらに抽出したものを載せますが、どちらもエスケープ処理を忘れずに書きましょう。

カテゴリーのクラス属性と名称を表示させるコード抜粋
  • カテゴリーのClass属性:<?php echo esc_attr($catslug); ?>
  • カテゴリーの名称:<?php echo esc_html($cat_name); ?>

お知らせ一覧に要素の指定

関連記事でも解説しているので、補足的なものになりますが、お知らせ一覧に載せたい要素(日付、カテゴリ名、投稿タイトル、投稿の抜粋、投稿内容)を呼び出すWordPress関数をまとめておきます。

WordPress関数まとめ
  • 投稿日:<?php the_time(‘Y年n月j日’) ?>
  • カテゴリー名:一つ上で説明済み
  • 投稿タイトル:<?php the_title() ?>
  • 投稿の抜粋(要約):<?php the_excerpt(); ?>
  • 投稿の内容:<?php the_content(); ?>

日付の書式

さらに補足ですが、日付関数 the time()のカッコ内の記述を変えることで日付の書式を変更することができます。

the time()と日付の書式
  • the_time(‘Y年n月j日’) :例)2023年1月2日
  • the_time(‘Y年m月d日’) :例)2023年01月02日
  • the_time(‘Y/n/j’) :例)2023/1/2
  • the_time(‘Y.n.j’) :例)2023/1/2

関連記事

あわせて読みたい
【WordPress】お知らせ一覧(投稿アーカイブ)ページの作り方【オリジナルテーマ】 WordPressのお知らせ一覧ページの作り方を紹介します。 WordPressのお知らせ一覧ページは「投稿アーカイブ」のことです。投稿アーカイブは、一般的なホームページの場合...
あわせて読みたい
【WordPress】お知らせ一覧をトップページに作る方法【オリジナルテーマ】 この記事では、トップページにもお知らせ一覧の一部を載せる方法を紹介します。 完成イメージ 完成イメージを下の図にお示しします。つまり、コーポレートサイトで良く...
あわせて読みたい
【WordPress】投稿アーカイブのページネーションの作り方 投稿アーカイブページのページネーションの作り方を紹介します。 完成イメージ WordPressでは投稿アーカイブページのページネーション用のコードが最初から用意されてい...
あわせて読みたい
【WordPress】投稿アーカイブページを表示させるためのfunctions.php設定 投稿アーカイブ(一覧)ページはfunctions.phpに設定を記述しないと表示されません。この記事ではその方法を紹介します。 functions.phpの記述例 投稿アーカイブページ...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

■清水WEB制作代表
■コーディング:WordPress(オリジナルテーマ制作等)・HTML・Sass・FLOCSS・JavaScript(jQuery)等
■集客力:YouTube/Instagram/ブログでそれぞれ登録者数16000人/フォロワー13000人/月間最大アクセス50000PVの集客実績があります
■文章作成:博士号所有、会社員時代は科学雑誌に寄稿していたので文章作成も得意です
■写真技術:Amazon Kindle出版で、写真集・撮影編集解説書を5冊好評発売中です

目次