主な条件分岐タグ
WordPressでのテンプレートを編集していると、表示しているページや条件によって出力する内容を変えたいことも多くあります。そのようなときに便利なのが「条件分岐タグ」です。
条件分岐の基本的な書き方
WordPressで条件分岐を行うにはPHPのif文を使います。
<?php if ( 条件式1 ) : ?>
条件1に当てはまるときの処理を記述
<?php elseif ( 条件式2 ) : ?>
条件2に当てはまるときの処理を記述
<?php else : ?>
どの条件にも当てはまらないときの処理
<?php endif; ?>
PHPやC言語など、なんらかのプログラミング言語に触れたことのある方にはお馴染みの文だと思いますが、WordPressの場合、このif文の条件式には独自の関数を使用します。
なお、条件が1つしかない場合は条件式2を省略することもできますし、条件が3つ以上ある場合は条件の数だけelseif()を増やすこともできます。また、最後のelse文は省略することもできます。
条件式の例
例えば「フロントページ」と「それ以外のページ」でh1タグの内容を変えたい場合は次のように記述します。
<?php if( is_front_page() ): ?>
<h1>フロントページのタイトル</h1>
<?php else: ?>
<h1>それ以外のページのタイトル</h1>
<?php endif; ?>
ANDとOR
if文の中には2つ以上の条件を入れ、組み合わせて条件判断することもできます。
2つの条件を入れ、どちらも満たす場合に処理を行いたい場合はAND(&&)を使い、どちらか一方のでも当てはまった場合に処理を行いたいときはOR(||)を使います。
//ANDを使ったif文
<?php if( 条件1 && 条件2 ): ?>
条件1と条件2のどちらも当てはまる場合の処理
<?php endif; ?>
//ORを使ったif文
<?php if( 条件1 || 条件2 ): ?>
条件1と条件2のどちらか一方でも当てはまった場合の処理
<?php endif; ?>
主な条件分岐タグ
条件分岐を行いたい場合はif文の中に下記の関数を入力します。
関数名 | 条件判断の内容 |
---|---|
is_front_page() | フロントページであるか |
is_home() | メインページであるか |
is_page() | 固定ページであるか(※全ての固定ページ) |
is_page(ページID) | 特定の固定ページであるか(※ページIDで指定) |
is_single() | 投稿ページであるか(※全ての投稿ページ) |
is_single(ページID) | 特定の投稿ページであるか(※ページIDで指定) |
is_archive() | アーカイブページであるか(※すべてのアーカイブページ) |
is_category() | カテゴリーアーカイブであるか(※引数でIDの指定も可能) |
is_tag() | タグアーカイブであるか(※引数でIDの指定も可能) |
is_author() | 投稿者アーカイブであるか(※投稿者IDの指定も可能) |
is_search() | 検索結果ページであるか |
is_404() | 404ページであるか |
is_paged() | 2ページ目以降であるか |
has_post_thumbnail() | アイキャッチ画像が指定されているか |
wp_is_mobile() | ユーザーがモバイルデバイスで訪問しているか |