WordPressで覚えておくべき条件分岐タグ

WordPressでオリジナルサイトを作ると

ページごとにアイキャッチ画像を変えたい
特定のページにだけサイドバーを表示したい

など、特定のページに応じて処理を変えたいときがあります。

そんなときに活躍するのが、「条件分岐タグ」です。

トップページや投稿ページだけでなく、固定ページごとに判別して処理を分けることもできます。

PHPで記述する条件分岐タグは多くあり、慣れるまで使いにくさを感じますが、一度覚えてしまえば大変重宝です。

この記事では、WordPressで覚えておくべき条件分岐タグについて解説をします。

ほどよしほどよし

まずは、よく使う条件分岐タグを覚えていこう

条件分岐の基本的な書き方

WordPressはPHPを使ったCMS(コンテンツ・マネジメント・システム)です。

そのためWordPress内の条件分岐タグなどの関数は、PHPで記述を行います。

PHPを記述するときは、PHPであることがわかるように宣言をします。

<?php if(条件): ?>
条件に当てはまる場合のHTMLコード
<?php esle :?>
条件に当てはまる場合のHTMLコード
<?php endif; ?>

このように条件分岐タグをPHPで囲み、ブラウザに表示する条件に当てはまる場合の記述をHTMLで記述します。

注意する点は、ifとelseifの後にはコロン(:)をつけることです。
セミコロン(;)をつけるとエラーになります。

反対に、endifの後にはセミコロン(;)をつけます。

条件分岐はよく使うテンプレートタグなので、上記をワンセットで覚えておきましょう。

よく使う条件分岐タグ

基本的な条件分岐タグの書き方を踏まえた上で、(条件)に記載する条件分岐タグをご紹介します。

is_front_page()

フロント(トップ)ページを条件を指定する際に用いるテンプレートタグです。

<?php if(is_front_page()) :?>

トップページだけにメインビジュアルをスライダー表示にしたいやお知らせ一覧を掲載したいなどの場合によく用います。

is_page()

固定ページを条件を指定する際に用いるテンプレートタグです。

<?php if(is_page()) :?>

条件分岐タグにはパラメータがあり、特定の固定ページだけに情報を掲載することができます。

<?php is_page(’news') :?>
<?php is_page(’55') :?>

パラメータには2種類の書き方があります。

  • スラッグを使ったページの指定
  • IDを指定するページの指定

ここで大切なことは、テンプレートファイル(page.php)にはテンプレート階層という、読み込むファイオルに優先順位があるということです。

テンプレート階層の優先順位(page.phpの場合)

page-{slug}.php > page-(ID).php > page.php

上記のようにslug(スラッグ)を用いたページ指定が最も優先順位の高いテンプレートファイルとなります。

これらのルールを頭に入れた上で、固定ページを増やし、条件分岐などで指定する際に利用するようにしましょう。

is_single()

投稿ページを条件を指定する際に用いるテンプレートタグです。

<?PHP if(is_single()) :?>

is_archive()

一覧ページの条件を指定する際に用いるテンプレートタグです。

<?PHP if(is_archive()) :?>

is_category()

カテゴリページの条件を指定する際に用いるテンプレートタグです。

<?PHP if(is_category()) :?>

is_search()

検索ページの条件を指定する際に用いるテンプレートタグです。

<?PHP if(is_search()) :?>

is_404()

404ページの条件を指定する際に用いるテンプレートタグです。

<?PHP if(is_404()) :?>

has_post_thumbnail()

サムネイル画像の条件を指定する際に用いるテンプレートタグです。

<?PHP if(is_thumbnail()) :?>

論理演算子を使った条件分岐の書き方

論理演算子を使うことで、条件分はより細かな指定をすることができます。

or条件:条件1もしくは条件2の場合

<?php if(条件1 || 条件2):?>

条件1か条件2のどちらかに当てはまる際の条件分岐です。

書き方は、条件1と条件2の間に「||」を使います。

and条件:条件1かつ条件2の場合

<?php if(条件1 && 条件2):?>

条件1か条件2、両方の条件に当てはまる際の条件分岐です。

書き方は、条件1と条件2の間に「&&」を使います。

イコール条件:条件1と条件2が等しいの場合

<?php if(条件1 == 条件2):?>

条件1か条件2が等しい条件に当てはまる際の条件分岐です。

書き方は、条件1と条件2の間に「==」を使います。

NOTイコール条件:条件1と条件2が等しくないの場合

<?php if(条件1 !== 条件2):?>

条件1か条件2が等しくない条件に当てはまる際の条件分岐です。

書き方は、条件1と条件2の間に「!==」を使います。

NOT条件:条件1ではない場合

<?php if(!条件1):?>

条件1の条件に当てはまらない際の条件分岐です。

書き方は、条件1の前に「!」をつけます。

まとめ

  • 条件分岐タグはPHPで囲んで使う
  • 書き方にはルールがあるので、覚える必要がある
  • ページごと、または特定のページごとなど詳細に条件を指定できる
  • 論理演算子を使えば、さらに細かい条件を指定できる