IT30

記事投稿ページをカテゴリーごとに違う仕様にしたいときのsingle.php記述方法

記事投稿ページをカテゴリーごとに違う仕様にしたいときのsingle.php記述方法

2019.06.14 更新

ワードプレスでブログやウェブサイトを作っていると『このカテゴリーにだけこのバナーを毎回表示させたいな』とか『このカテゴリーだけデザインをガラッと変えた記事にしたいな』など、カテゴリーごとに仕様を変える必要が出てくることがあります。

しかしsingle.phpは1つしかないので泣く泣く毎回記事の中にバナーを挿入したり、デザインをどちらかに統一したり…。

そんな時に使えるカテゴリーごとにsingle.phpを分ける方法です。

 

function.phpなどを触らないので初心者でも書きやすい

 

このようなちょっとトリッキーな分岐などはfunction.phpに追記したりすることが多く、少しでもコードにミスがあると画面が表示されなくなったり、真っ白になってしまうので抵抗がある方もいると思います。

ですがsingle.phpのカテゴリーごとの分岐はとても簡単なコードをコピペするだけで出来てしまうので安心です。

 

single.phpへの記述

まずはsingle.phpに下記のコードをコピペします。

<?php
  if (in_category('カテゴリスラッグ名1')) {
      include(TEMPLATEPATH.'/single-カテゴリスラッグ名1.php');
  } elseif(in_category('カテゴリスラッグ名2')) {
      include(TEMPLATEPATH.'/single-カテゴリスラッグ名2.php');
  } else {
      include(TEMPLATEPATH.'/single-default.php');
  }
?>

どんなことが書かれているかというと…

カテゴリのスラッグが【カテゴリスラッグ名1】のときは【single-カテゴリスラッグ名1.php】を読み込んでね。

カテゴリのスラッグが【カテゴリスラッグ名2】のときは【single-カテゴリスラッグ名2.php】を読み込んでね。

それ以外のカテゴリスラッグのときは【single.default.php】を読み込んでね。

ということが書かれています。

ですのでテーマフォルダの中に【single-カテゴリスラッグ名1.php】【single-カテゴリスラッグ名2.php】【single-default.php】を新しく作る必要があります。

single.phpがカテゴリごとに分けられるので、カテゴリごとにデザインを変えたりCSSを変えることが出来ます。

 

実際にカテゴリスラッグ名を入れてみるとこんな感じ

<?php
  if (in_category('news')) {
      include(TEMPLATEPATH.'/single-news.php');
  } elseif(in_category('works')) {
      include(TEMPLATEPATH.'/single-works.php');
  } else {
      include(TEMPLATEPATH.'/single-default.php');
  }
?>

カテゴリスラッグ名を入れてみるとこんな感じになります。

newsスラッグのときはsingle-news.phpを、

worksスラッグのときはsingle-works.phpを、

それ以外のスラッグのときはsingle-default.phpを読み込むように書いてあります。

この場合はテーマフォルダに上記3つのphpファイルを追加する必要がありますのでファイル名の書き間違えなどに気をつけてください。

分岐ができたらあとは各々のphpを普通に書くだけでOKです。

 

single.phpに分岐コードを書いたあとは各々のphpファイルを作りいつも通り普通に書くだけ

特別function.phpなど肝になるファイルを触ることなく、single.phpに分岐コードを書くだけなので非常に簡単ですね。

分岐したいカテゴリが2つだけの場合は【elseif(〜){〜}】の部分を削除すればOKですし、4以上になった場合は【elseif(〜){〜}】のあとに同じく【elseif(〜){〜}】を追加してあげればOKです。

そんなに頻繁に使うコードではないので、次回使うとき用にメモしておきます。

マレーシアの日系IT企業で働く30代のウェブエンジニアの備忘録ブログです。

基本は過去わからなくて悩んだコーディングや諸々の設定方法などをメモ代わりに書き留めています。

ウェブコーディングやワードプレスの勉強中の方や同じ問題で悩んでいる方のお力になれたら嬉しいです。

ウェブサイトの制作依頼をマレーシアのローカル企業にご依頼されて大変な思いをしたことはございませんか?

安価が魅力のマレーシア企業ですが、お国柄どうしても…
「期日を守らない」「連絡がおろそか」「上手くコミュニケーションが取れない」
などのお悩みをかかえることがあると思います。

かと言って日系の企業はマレーシアの企業よりも値が張るため予算的に合わない。

私もマレーシアで働くからこそ、その大変さを理解した上でご提案があります。