2017.01.31   Web

wpでカテゴリ別にサイドバーの表示を変更させたいときの方法は?

WordPressを導入したサイトをつくるとき、ちゃんとコンテンツや目的がしぼれているサイトであれば、正直なところサイドバーをカテゴリ別に条件分岐させる必要はないであろう。しかしながら、カテゴリがそれぞれ別内容としてみせなければならないとなると、サイドバーもカテゴリによって表示を変えてあげないと逆に不自然になってくる。そんなときに、Wordpressでカテゴリ別にサイドバーの表示を変えたいときの備忘録である。

1.sidebar-◯◯◯.phpをテーマ内につくる。

テーマ内をみるとsidebar.phpというファイルが入っている。このsidebar.phpをコピーして、ファイル名を表示させたいものに変えるわけである。例えばカテゴリ名『test』であれば、『sidebar-test.php』という感じである。このとき、元のsidebar.phpを消してはいけない。これらによって、下記2で挿入した通り、指定したカテゴリのサイドバーを呼び出すことができる。

2.投稿ページsingle.phpの挿入したい部分に下記を追記。

<?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でカテゴリ別にサイドバーの表示を変えるのは簡単である。しかし、こうしてカテゴリのサイドバーを条件分岐しすぎると、いざ共通の部分を変更したいときにすべてを書き換えてかげなければならないというメリットもあることを忘れてはいけないだろう。


槍の間合いもまだまだだな。


枯れ木も山の賑わい。


HTML Wordpress メタルギア モノゴト 丁寧 万年筆 今宵 体感 作業 判断 北海道 単純 太陽 実験 容姿 心地よい 思考 意識 感覚 撮影 文化 映像 時間 本質 歩く 物語 環境 生活 瞬間 空間 簡単 精神 経験 自然 色彩 表現 要素 言葉 記憶 質素 身体 過去 違和感 雰囲気 風景

Copyright © 2014 kojinao. All rights reserved.