meijinochoco さん
サイドバーの作り方というか、どこで条件を定義するかで分岐地点が結構変わると思うのですが。
1、1つのサイトバーですべて行いたい
⇒サイトバーの中でIF
2、サイトバーの読み方自体を制御したい
⇒getをIF文で制御
となると思うのですが
どのみち、IFをかますのであれば
meijinochocoさんのおっしゃる通り、「サイトバーの中でIF」となります。
多分追加されたもの(functions.php)は「register_sidebar」を使ったものだとおもうのですが
サイドバーの中身は基本的にはウィジットの認識で進みます。
例えば、通常ウィジットの取得では以下の方法なんかが一般的だと思います
※IF ウィジットに何か入れはウィジットを実行しkますってやつです
<div id=”side” class=”side”>
<?php
if(is_active_sidebar(‘custom_widget1’)){ dynamic_sidebar(‘custom_widget1’); }
?>
</div>
これに条件を振るのであれば、
<?php
if (is_page()) ://もし固定ページ内だったら
?>
<div id="side" class="side">
<?php
if(is_active_sidebar('custom_widget1')){ dynamic_sidebar('custom_widget1'); }
?>
</div>
<?php
elseif(get_post_type() =='カスタム投稿タイプslug' ):
?>
<div id="side-2" class="side">
<?php
if(is_active_sidebar('custom_widget2')){ dynamic_sidebar('custom_widget2'); }
?>
</div>
<?php endif; ?>
みたいな感じですかね?
すみません、走り書きで。。。
っとここまで来て、読み返してみたらなんかずれてました。
固定ページの条件分岐の場合
テンプレート OR slug OR IDで分岐すると思うのですが
私の場合、ページテンプレートで振り分けることが多いのでとりあえず
<?php
if(is_page_template('page-a.php')):
get_sidebar('サイドバーa');
elseif(is_page_template('page-b.php')):
get_sidebar('サイドバーb');
endif;
?>
なんて作りですかね?
IDの場合 is_page( ’42’ )
slugやタイトルの場合 is_page( ‘about-me’ )
って感じで分岐だと思います
条件分岐はコーデックスを見れば大体乗ってますよ。
サイトの規模や仕組みによって「phpの優先度 VS 条件分岐」って結構なやみどころですよね。
意外と利用するのが階層のルールですかね。
IFよりも優先度が高いので、タクソノミーなどでよく使っています。
テンプレート階層
なんか長くなってしまいましたが
固定ページの振り分けの場合、どこの軸(どの条件)で判断させるかは、運用的なお話なので、そのあたり踏まえて、どのタイミングでIFをつけるか作成頂ければと思います。