といっても、wordpressで一般的なのと同じw
Codexのテンプレ階層図が新しくなってたので ついでにペタ( ・_・)ノノ”□”
条件分岐タグはイロイロあるので、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]
- 投稿タグ
- カスタム