【コピペで使える】WordPressで投稿テンプレートをカテゴリ別に変える方法(カスタムフィールド使用)

WordPressでウェブサイトを作るときに、カテゴリーによって投稿テンプレートを変えたいという場合があります。今回はその場合のサンプルコードを紹介します。
 

概要

複数のお店を紹介するサイトの制作を想定します。店舗紹介カテゴリーの投稿ページは共通項目のため編集しやすいようにカスタムフィールドを適用、その他カテゴリーの投稿ページは通常の仕様のままとします。
 
 

主な手順

  • ①Wordpress管理画面でshopsカテゴリーを作成
  • ②Advanced Custom Fieldsをインストール
  • ③カスタムフィールドを作成しshopsカテゴリーを指定
  • ④single.phpをコピーしsingle-default.phpのファイル名で保存
  • ⑤single.phpをコピーしカスタムフィールドに対応したsingle-shops.phpを作成
  • ⑥single.phpでカテゴリー別振り分け処理を実装

 

サンプルコード

single.php


<?php
$post = $wp_query->post;
if ( in_category('shops') ) {
include('(省略)/single-shops.php');
} else {
include('(省略)/single-default.php');
}
?>

 

まとめ

以上で完了となります。カスタム投稿タイプでテンプレートを振り分けることも可能ですが、その場合サイト内検索にうまく反映されなかったり、URL構造(パーマリンク)の設定がややこしくなったりする場合がありますので、今回のようにカテゴリーによってテンプレートを振り分けやり方を知っていると何かと便利かなと思います。

Follow me!