KH-WEBLOG TOP > WEBメモ > WordPress > カテゴリーごとにサイドバーを変更:WordPress

カテゴリーごとにサイドバーを変更:WordPress

各カテゴリーとそのカテゴリーに属するページのサイドバーを変更したかったのでその方法をメモ

例えば
サンプル1(sam1:スラッグ名)
サンプル2(sam2:スラッグ名)
サンプル3(sam3:スラッグ名)

という親カテゴリーがあり、それに属する子カテゴリーや投稿記事のページのサイドバーを
各親カテゴリーごとにサイドバーを変更するという感じです。

コーディング・WordPress化作業を代行します

カテゴリーごとにサイドバーを作成

まず、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化作業を代行します

WordPressのおすすめ参考書

楽天Kobo電子書籍ストア
¥3,278 (2024/02/27 15:53時点 | 楽天市場調べ)

TAGS

.htaccess ActionScript All in one seo pack Contact Form 7 CSS CSS3 EC-CUBE Flash HTML HTML5 JavaScript jQuery LightBox PHP RSS SEO WordPress アイキャッチ画像 アクセス解析 カスタムフィールド カテゴリー カラーミーショップ カート コメント ショートコード ソースコード テンプレートタグ ドロップダウンメニュー パーマリンク フォーム フルスクリーン プラグイン ページテンプレート ページナビ ページ分割 マウスイベント リダイレクト リンク レンタルサーバー ロールオーバー 携帯サイト 条件分岐 正規表現 角丸 関連記事