といっても、wordpressで一般的なのと同じw

Codexのテンプレ階層図が新しくなってたので ついでにペタ( ・_・)ノノ”□”

wp-template-hierarchy

条件分岐タグはイロイロあるので、wordpressCodexで探してみて下さい。

is_tag(タグ)やis_tax(タクソノミー)についてはカテゴリとほぼ同じなので省略しておきます。

 条件分岐タグ

is_front_page() トップページ(ホーム)
is_home() 投稿(ブログ)一覧ページ
is_single() 投稿ページ
is_page() 固定ページ
is_category() カテゴリのアーカイブ
in_category()

特定のカテゴリ内の記事かどうか
※ちょっと他と毛並みが違うので注意

論理演算子(よく使うもの)

and演算子「&&もしくはand」 if(条件1 && 条件2) 条件1かつ条件2
or演算子「||」 if(条件1 || 条件2) 条件1または条件2
NOT演算子「!」 if(! 条件1) 条件1ではない
等しい「==」 if(条件1 == 条件2) 条件1と条件2が等しい
等しくない「!=」 if(条件1 != 条件2) 条件1と条件2が等しくない

条件分岐で使う基本ルール(書き方)

is_single,is_page,is_category,in_categoryでは、ID、タイトル(カテゴリ名)、スラッグを指定できます。

複数指定する場合は、array(‘a’,’b’,’c’)とカンマ区切りで。

[php]
/* 投稿ページIDが24の場合 */
  ごにょごにょ
/* 固定ページIDが22と36の場合の場合 */
  ぐにょぐにょ
/* カテゴリ名が”サンプル”の場合 */
  ぶにょぶにょ
/* カテゴリスラッグが”sample”でない場合 */
  うにょうにょ

[/php]

という感じです。

これに、andやorを組み合わせていくと、そこそこ複雑な条件分岐が出来るようになります。

bizvektorで使いそうなサンプル

子ページの場合・・・

[php]if (is_page() && $post->post_parent)[/php]

親ページIDが13の子ページの場合・・・

[php]if (is_page() && $post->post_parent == ’13’)[/php]

カテゴリ「abc」のアーカイブページとカテゴリ「abc」の投稿ページ

カテゴリ別にアーカイブと投稿ページをデザインを統一したい場合とか。

[php]if (is_category(‘abc’) || in_category(‘abc’))[/php]

特定の親カテゴリと、その子カテゴリに属する・・・

簡単そうだけど、ちょっと面倒w

in_category()||in_category()||・・・とつなげてもいいけど、

子カテゴリが増減すると、そのたびに修正が必要になるので

親カテゴリを指定すれば、その子カテゴリも含まれるようにする方法。

Codexの「子カテゴリー内の投稿かテストする」を参考に。

functions.phpに

[php]
function post_is_in_descendant_category( $cats, $_post = null ){
foreach ( (array) $cats as $cat ) {
$descendants = get_term_children( (int) $cat, ‘category’);
if ( $descendants && in_category( $descendants, $_post ) )
return true;
}
return false;
}
[/php]

そして

[php]if ( in_category(‘親カテゴリIDもしくはスラッグ’) || post_is_in_descendant_category(‘親カテゴリIDもしくはスラッグ’))[/php]

 

「bizvektorのcss・phpカスタムまとめ」へ