カテゴリーごとにサイドバーを変更:WordPress
各カテゴリーとそのカテゴリーに属するページのサイドバーを変更したかったのでその方法をメモ
例えば
サンプル1(sam1:スラッグ名)
サンプル2(sam2:スラッグ名)
サンプル3(sam3:スラッグ名)
という親カテゴリーがあり、それに属する子カテゴリーや投稿記事のページのサイドバーを
各親カテゴリーごとにサイドバーを変更するという感じです。
カテゴリーごとにサイドバーを作成
まず、sidebar.phpをもとに
sidebar-sample1.php
sidebar-sample2.php
sidebar-sample3.php
※sample1とかの部分は任意の名前
といったファイルを作りアップします。
カテゴリーごとにサイドバーを読み込ませる
次にサイドバーを読み込ませたい部分に
<?php if( in_category('sam1') ) {get_sidebar('sample1');} elseif( in_category('sam2') ) {get_sidebar('sample2');} elseif( in_category('sam3') ) {get_sidebar('sample3');} else { get_sidebar(); } ?>
のように条件分岐させて読み込ませればOK
in_category()
とは「現在の投稿がカテゴリーに属する場合にtrueを返す」という条件分岐タグで、
in_category('カテゴリースラッグ名もしくはID')
といった使い方をします。ほかに配列なども使えるようなのですが、
詳しくは
> テンプレートタグ/in category
に載っています。
また、
get_sidebar(‘○○○’)
の部分の○○○の部分には
sidebar-○○○.phpの○○○の部分の名前を記述します。
番外!個別ページごとにサイドバーを変更
番外として個別ページごとにサイドバーを変更するときは
上記のin_category()は使えないので、代わりに
is_pageを使用します。
使い方はほとんど同じで、
page.phpの中のサイドバーを表示する部分に
<?php if( is_page('ページIDもしくはスラッグ名') ) {get_sidebar('sample1');} elseif( is_page('ページIDもしくはスラッグ名') ) {get_sidebar('sample2');} elseif( is_page('ページIDもしくはスラッグ名') ) {get_sidebar('sample3');} else { get_sidebar(); } ?>
と記述すればOK
WordPressのおすすめ参考書
bookfan 1号店 楽天市場店
¥3,300 (2024/10/06 12:05時点 | 楽天市場調べ)
ポチップ
ポチップ