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構造(パーマリンク)の設定がややこしくなったりする場合がありますので、今回のようにカテゴリーによってテンプレートを振り分けやり方を知っていると何かと便利かなと思います。