WordPressを導入したサイトをつくるとき、ちゃんとコンテンツや目的がしぼれているサイトであれば、正直なところサイドバーをカテゴリ別に条件分岐させる必要はないであろう。しかしながら、カテゴリがそれぞれ別内容としてみせなければならないとなると、サイドバーもカテゴリによって表示を変えてあげないと逆に不自然になってくる。そんなときに、Wordpressでカテゴリ別にサイドバーの表示を変えたいときの備忘録である。
テーマ内をみるとsidebar.phpというファイルが入っている。このsidebar.phpをコピーして、ファイル名を表示させたいものに変えるわけである。例えばカテゴリ名『test』であれば、『sidebar-test.php』という感じである。このとき、元のsidebar.phpを消してはいけない。これらによって、下記2で挿入した通り、指定したカテゴリのサイドバーを呼び出すことができる。
<?php
if(in_category(‘カテゴリ名1’)) :
get_sidebar(‘sidebar-◯◯◯1.phpの◯◯◯部分を入れる’);
elseif(in_category(‘カテゴリ名2’)) :
get_sidebar(‘sidebar-◯◯◯2.phpの◯◯◯部分を入れる’);
elseif(in_category(‘カテゴリ名3’)) :
get_sidebar(‘sidebar-◯◯◯3.phpの◯◯◯部分を入れる’);
elseif(in_category(‘カテゴリ名4’)) :
get_sidebar(‘sidebar-◯◯◯4.phpの◯◯◯部分を入れる’);
else :
get_sidebar();
endif
?>
上記はすなわち、『カテゴリ1の投稿ページが表示された場合、サイドバーはsidebar-◯◯◯1.phpの内容が表示されますよ。そして、カテゴリ2の投稿ページが表示された場合、サイドバーはsidebar-◯◯◯2.phpの内容が表示されますよ。そして…』ということである。いくつものカテゴリーを条件分岐させたい場合でも、カテゴリ4に続きて同じように追記していくだけである。
…上記コードのカテゴリ4に続いて
elseif(in_category(‘カテゴリ名5’)) :
get_sidebar(‘sidebar-◯◯◯5.phpの◯◯◯部分を入れる’);
elseif(in_category(‘カテゴリ名6’)) :
get_sidebar(‘sidebar-◯◯◯6.phpの◯◯◯部分を入れる’);
elseif(in_category(‘カテゴリ名7’)) :
get_sidebar(‘sidebar-◯◯◯7.phpの◯◯◯部分を入れる’);
elseif(in_category(‘カテゴリ名8’)) :
get_sidebar(‘sidebar-◯◯◯8.phpの◯◯◯部分を入れる’);
else :
get_sidebar();
endif
?>
いかがだろうか、wordpressでカテゴリ別にサイドバーの表示を変えるのは簡単である。しかし、こうしてカテゴリのサイドバーを条件分岐しすぎると、いざ共通の部分を変更したいときにすべてを書き換えてかげなければならないというメリットもあることを忘れてはいけないだろう。
年別一覧
Adobe Blu-ray DVD Illustrator MacBook Wordpress メタルギア モノゴト 丁寧 万年筆 今宵 体感 作業 判断 北海道 単純 太陽 実験 心地よい 思考 意識 感覚 撮影 映像 時間 本質 歩く 物語 環境 生活 瞬間 福島 簡単 精神 経験 自然 色彩 表現 言葉 記憶 質素 身体 違和感 雰囲気 風景