特定のカテゴリーを含む投稿で読み込むテンプレートを変更する方法

特定のカテゴリーを含む投稿で読み込むテンプレートを変更する方法

特定のカテゴリーを含む投稿で読み込むテンプレートを変更する方法

通常WordPressでは、投稿詳細ではsingle.phpというテンプレートが読み込まれます。single.phpが投稿の共通テンプレートとして使用されるわけですが、特定のカテゴリーを含む時だけテンプレートを変更したい、というケースが出てくる場合があります。

そんな時のために、特定のカテゴリーを含む投稿のみ、テンプレートを変更する方法をご紹介いたします。

特定のカテゴリーを含む投稿で読み込むテンプレートを変更する方法

適用しているテーマのfunctions.phpに以下を追記します。

function template_include_change($template) {
  if( is_single() && in_category('news') ) {
    $template = dirname(__FILE__) . '/single-news.php';
  }
  return $template;
}
add_filter('template_include', 'template_include_change', 999);

これにより、投稿詳細でかつ”news”というカテゴリーが含まれる場合は、「single-news.php」が読み込まれるようになります。あとは、single-news.phpを用意して、テーマディレクトリにアップしてあげればOKです。

「in_category(‘news’)」と「single-news.php」の部分は、環境に合わせて適宜変更してください。

あとがき

上述した内容ではカテゴリーによってテンプレートを切り替えていますが、「if( is_single() && in_category(‘news’) )」の条件を変更すれば、色んなケースで読み込むテンプレートを切り替えることができます。

ちょっとした違いであれば、テンプレートを分けなくてもsingle.php内で条件分岐させれば良いと思いますが、大幅に変更が必要な場合はテンプレートを分けた方がわかりやすいですね。

この記事が気に入ったら
いいね!してね♪

Twitter で

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です