WordPress

子カテゴリーに親カテゴリーのテンプレートを適用する

カテゴリーページの優先順位は下記の通りなんだけど
category-slug.php -- 特定のカテゴリー用テンプレート
category-ID.php -- 特定のカテゴリー用テンプレート
category.php -- カテゴリーの汎用テンプレート
archive.php -- 汎用アーカイブテンプレート(タグ・日別アーカイブなどと共用)
index.php
(参考:WordPress Codex
カテゴリーのデザインを変更したときに、そのカテゴリーの子カテゴリーまでデザインは引き継がれないんですよね。
これfunction.php内に記述するといいと聞いて…知らなかった…のでメモ

add_filter( 'category_template', 'my_category_template' );

function my_category_template( $template ) {
	$category = get_queried_object();
	if ( $category->parent != 0 &&
		( $template == "" || strpos( $template, "category.php" ) !== false ) ) {
		$templates = array();
		while ( $category->parent ) {
			$category = get_category( $category->parent );
			if ( !isset( $category->slug ) ) break;
			$templates[] = "category-{$category->slug}.php";
			$templates[] = "category-{$category->term_id}.php";
		}
		$templates[] = "category.php";
		$template = locate_template( $templates );
	}
	return $template;
}

ソース元は子カテゴリのアーカイブページを親カテゴリ用のテンプレートファイルで表示しよう
今後も使うことになるだろうからメモ。

  • この記事を書いた人

ゆず

■忘れないように自分の覚書と、誰かも困っているかもしれないので参考になればいいなくらいの軽い備忘録です。
■サイト運営費のためGoogleAdsenseをいれています。
giftee / ko-fi / mail

1

outlookを最小化すると勝手に終了してしまうと相談されたけど実はそれ勝手に閉じてるわけじゃなくて、おそらく「最小化時にアイコン化する設定」になってるんや・・・。 outlookの最小化時の設定を変 ...

2

前提 自分用ブックマークサイトとして使用しているてがろぐに、いいねボタンをつけようという狙いです。なので、てがろぐのセットアップは終了し稼働しているものとします。 配布ページのマニュアルを参考に進めま ...

3

感想をもっと手軽に、お気軽に。 https://labo.01kawa.com/kansou 素敵なフォロー、フォロワー、創作作家さんに作品の感想を送りたい…!が、語彙力がないという方向けの感想メーカ ...

-WordPress