swellで投稿ページをそれぞれの投稿のカテゴリでレイアウト分けした場合、single.php
で条件分岐させる。
<?php
if ( ! defined( 'ABSPATH' ) ) exit;
// ▼ 親カテゴリのスラッグを取得
$categories = get_the_category();
$parent_slug = 'default'; // デフォルト値
if (!empty($categories)) {
foreach ($categories as $cat) {
if ($cat->parent == 0) {
// 親カテゴリ
$parent_slug = $cat->slug;
break;
} else {
// 子カテゴリ → 親カテゴリを取得
$parent = get_category($cat->parent);
if ($parent) {
$parent_slug = $parent->slug;
break;
}
}
}
}
// ▼ 親カテゴリスラッグに応じてテンプレートファイルを切り替え
$template_file = locate_template("single-{$parent_slug}.php");
if ($template_file) {
include($template_file); // 親カテゴリ用テンプレート
} else {
include(locate_template("single-default.php")); // フォールバックテンプレート
}
カテゴリ「works」があって、このカテゴリのデザインを他の投稿ページと分けたい場合、single.phpにはこの条件分岐のみを起き、single.php
をベースにして作成したsingle-works.php
を置いて、そこでデザイン変更を行うようなイメージ。