WordPress

【コピペOK!】よく使うWordPress条件分岐タグまとめ

2022年4月27日

※ 当サイトではアフィリエイト広告を利用しています

WordPressの条件分岐ってどう書けばいいの?

WordPressでは、

  • トップページだけヘッダーを変えたい
  • スマホだけ非表示にしたい

など、条件によって設定を変えたい事がよくあります。

これを条件分岐と呼びますが、今回はよく使うもの、もしくは個人的に使う可能性があると思うものだけまとめました。

じゅんぺいブログは、Web制作コーディングWordPress制作)の技術記事を中心に、約500記事公開しています。ぜひ他の記事も参考にしてみてください!
完全無料のプログラミングスクール『ZeroPlus Gate』
30日間でWeb制作を学べる無料のプログラミングスクールがこちら
いきなり数十万するプログラミングスクールは厳しい・・・という人のお試しに最適です。
現在は無料ですがいつ有料になるか分からないので、気になる方はお早めに👇
(有料になっていたらすいません🙇‍♂️)

\ 完全無料 /

ZeroPlus Gate公式サイト

毎日先着制!

WordPress条件分岐の書き方

まずは条件分岐の書き方を解説していきます。

ここの書き方が基本となり、次のセクションの条件分岐タグでも応用出来るのでしっかり押さえておきましょう。

 

基本的な書き方

まずは基本的な書き方から。if文を使って書きます。

<?php if (条件) : ?>
  条件に当てはまる場合の処理
<?php else: ?>
  条件に当てはまらない場合の処理
<?php endif; ?>

if文は『もし、〜だったら』という書き方なので、

「もし条件に当てはまったら◯◯、そうでなかったら××」

という書き方になります。

ちなみに条件に当てはまった時の処理だけでよければ、elseは無くても大丈夫です。

<?php if (条件) : ?>
  条件に当てはまる場合の処理
<?php endif; ?>

 

条件が複数ある場合

<?php if (条件1) : ?>
  条件1に当てはまる場合の処理
<?php elseif (条件2) : ?>
  条件2に当てはまる場合の処理
<?php else: ?>
  全ての条件に当てはまらない場合の処理
<?php endif; ?>
  1. 条件1が当てはまったら条件1に当てはまる場合の処理
  2. 条件1に当てはまらなかったら条件2へ
  3. 条件2が当てはまったら条件2に当てはまる場合の処理
  4. 条件2も当てはまらなかったら全ての条件が当てはまらなかった場合の処理

となります。

ここも全ての条件に当てはまらない場合の処理が不要であれば、<?php else: ?>は無くても大丈夫です。

また<?php elseif (条件) : ?>はいくつでも設定可能です。

 

条件ではない場合

これまでは『もし条件1の場合』という書き方でしたが、『もし条件1ではない場合という逆の書き方も出来ます。

こちらが通常のif文。

<?php if (条件) : ?>
  条件に当てはまる場合の処理
<?php endif; ?>

そしてこちらが条件ではない場合。

<?php if (!条件) : ?>
  条件ではない場合の処理
<?php endif; ?>

条件の頭に『 ! 』を付けることで、条件の否定となります。

 

条件1かつ条件2(AND)

条件1かつ条件2が当てはまる場合の処理はこちら。

<?php if (条件1 && 条件2) : ?>
  条件1かつ条件2が当てはまる場合の処理
<?php endif; ?>

またそれぞれの条件の頭に『 ! 』を付けると、条件1かつ条件2が当てはまらない場合の処理となります。

<?php if (!条件1 && !条件2) : ?>
  条件1かつ条件2が当てはまらない場合の処理
<?php endif; ?>

 

条件1または条件2(OR)

条件1または条件2が当てはまる場合の処理はこちら。

<?php if (条件1 || 条件2) : ?>
  条件1または条件2が当てはまる場合の処理
<?php endif; ?>

 

条件1かつ条件2、または条件3の場合(ANDとORの組み合わせ)

ANDとORは組み合わせることも出来ます。

<?php if ( ( 条件1 && 条件2 ) || 条件3 ) : ?>
  条件1かつ条件2、または条件3が当てはまる場合の処理
<?php endif; ?>

あまり使う機会はないかも知れませんが参考までに。

 

条件の指定が複数ある場合

<?php if ( is_page( array( "条件1","条件2","条件3" ) ) ) : ?>
  固定ページの条件1と条件2と条件3の処理
<?php else: ?>
  固定ページの条件1と条件2と条件3以外の処理
<?php endif; ?>

これは固定ページ(is_page)の例ですが、条件にはページIDやカテゴリーIDなどいろいろあります。

その場合はarrayを使うと条件を複数指定できます。

例えば、固定ページを3ページ分ページIDで指定した場合は以下のようになります。

<?php if ( is_page( array( "10","20","30" ) ) ) : ?>
  固定ページのページID10とページID20とページID30の処理
<?php else: ?>
  固定ページのページID10とページID20とページID30以外の処理
<?php endif; ?>

条件分岐タグ一覧では省略していますが、よく使うのでぜひ覚えておきましょう。

 

WordPress条件分岐タグ一覧

それでは先ほど解説した書き方を元に、条件分岐タグを見ていきます。

 

トップページ

<?php if ( is_front_page() ) : ?>
  トップページのみの処理
<?php else: ?>
  トップページ以外の処理
<?php endif; ?>

ポイント

他のサイトでは<?php if ( is_home() || is_front_page() ) : ?>という書き方で紹介されている事も多いですが、当ブログのWordPressオリジナルテーマ解説では、
・トップページ → front-page.php
・記事一覧 → home.php
としていて、上記の場合だと「トップページまたは記事一覧ページ」となる為、is_front_page() だけにしています。

※ ご自身のトップページの作り方に合わせて変更して下さい。

 

固定ページ

<?php if ( is_page() ) : ?>
  固定ページのみの処理
<?php else: ?>
  固定ページ以外の処理
<?php endif; ?>

ポイント

これは固定ページ全てになります。WordPressオリジナルテーマの作り方④(固定ページ編)で解説している固定ページはpage-◯◯.phpですが、これも全て対象になります。

 

指定した固定ページ

<?php if ( is_page( "ページID" ) ) : ?>
  固定ページのみの処理
<?php else: ?>
  固定ページ以外の処理
<?php endif; ?>

固定ページのページIDは、ページ名にカーソルを乗せたら左下で確認できます。

固定ページ:ページIDの調べ方

固定ページ:ページIDの調べ方

 

記事一覧ページ

<?php if ( is_home() ) : ?>
  記事一覧ページのみの処理
<?php else: ?>
  記事一覧ページ以外の処理
<?php endif; ?>

ポイント

当ブログのWordPressオリジナルテーマ解説では、
・記事一覧 → home.php
としているので、記事一覧ページの条件分岐はis_home()としています。

 

個別記事ページ(カスタム投稿の個別記事ページ含む)

<?php if ( is_single() ) : ?>
  個別記事ページのみの処理(カスタム投稿含む)
<?php else: ?>
  個別記事ページ以外の処理
<?php endif; ?>

ポイント

カスタム投稿の個別記事ページはsingle-◯◯.phpなので、通常の個別記事ページだけでなくカスタム投稿の個別記事ページも含まれます。

 

個別記事ページ(カスタム投稿の個別記事ページを除く)

<?php if ( is_single() && !is_singular( "カスタム投稿タイプスラッグ" ) ) : ?>
  個別記事ページのみの処理(カスタム投稿除く)
<?php else: ?>
  個別記事ページ以外の処理
<?php endif; ?>

ポイント

これは、
個別記事ページかつ指定したカスタム投稿の個別記事ページは除く
となります。

カスタム投稿には『 ! 』を付けて否定としています。

カスタム投稿タイプスラッグは以下で確認します(プラグイン『Advanced Custom Fields』使用)

カスタム投稿タイプスラッグの調べ方

カスタム投稿タイプスラッグの調べ方

 

指定した個別記事ページ(カスタム投稿含む)

<?php if ( is_single( "ページID" ) ) : ?>
  指定した個別記事ページのみの処理(カスタム投稿含む)
<?php else: ?>
  指定した個別記事ページ以外の処理
<?php endif; ?>

ポイント

ページIDの確認方法は固定ページと同じで、投稿タイトルにカーソルを乗せて左下で確認できます。

 

アーカイブページ

<?php if ( is_archive() ) : ?>
  アーカイブページのみの処理
<?php else: ?>
  アーカイブページ以外の処理
<?php endif; ?>

ポイント

通常投稿の記事一覧ページ以外のアーカイブページになります。

例)カテゴリー一覧、日付別、タグ別、投稿者別、カスタム投稿記事一覧、カスタム投稿タクソノミー一覧など

 

カテゴリーページ

<?php if ( is_category() ) : ?>
  カテゴリーページのみの処理
<?php else: ?>
  カテゴリーページ以外の処理
<?php endif; ?>

ポイント

カスタム投稿のタクソノミー一覧は含みません。

 

指定したカテゴリーページ

<?php if ( is_category( "カテゴリーID" ) ) : ?>
  指定したカテゴリーページのみの処理
<?php else: ?>
  指定したカテゴリーページ以外の処理
<?php endif; ?>

カテゴリーIDは『投稿 → カテゴリー』のカテゴリー名にカーソルを乗せたら左下で確認できます。

カテゴリーIDの調べ方

カテゴリーIDの調べ方

また、カテゴリーはIDでは無くスラッグでもOKです。

<?php if ( is_category( "カテゴリースラッグ" ) ) : ?>

スラッグはここで確認が出来ます。

カテゴリースラッグの調べ方

カテゴリースラッグの調べ方

この場合は<?php if ( is_category( "info" ) ) : ?>となりますね。

 

指定したカスタム投稿の個別ページ

<?php if ( is_singular( "カスタム投稿タイプスラッグ" ) ): ?>
  指定したカスタム投稿の個別ページのみの処理
<?php else: ?>
  指定したカスタム投稿の個別ページ以外の処理
<?php endif; ?>

カスタム投稿タイプスラッグは以下で確認します(プラグイン『Advanced Custom Fields』使用)

カスタム投稿タイプスラッグの調べ方

カスタム投稿タイプスラッグの調べ方

 

カスタム投稿のアーカイブページ

<?php if ( is_post_type_archive() ) : ?>
  カスタム投稿のアーカイブページのみの処理
<?php else: ?>
  カスタム投稿のアーカイブページ以外の処理
<?php endif; ?>

 

指定したカスタム投稿タイプのアーカイブページ

<?php if ( is_post_type_archive( "カスタム投稿タイプスラッグ" ) ) : ?>
  指定したカスタム投稿タイプのアーカイブページのみの処理
<?php else: ?>
  指定したカスタム投稿タイプのアーカイブページ以外の処理
<?php endif; ?>

カスタム投稿タイプスラッグは以下で確認します(プラグイン『Advanced Custom Fields』使用)

カスタム投稿タイプスラッグの調べ方

カスタム投稿タイプスラッグの調べ方

 

カスタムタクソノミーのアーカイブページ

<?php if ( is_tax() ) : ?>
  カスタムタクソノミーのアーカイブページのみの処理
<?php else: ?>
  カスタムタクソノミーのアーカイブページ以外の処理
<?php endif; ?>

 

指定したカスタムタクソノミーのアーカイブページ

<?php if ( is_tax( "タクソノミースラッグ" ) ) : ?>
  指定したカスタムタクソノミーのアーカイブページのみの処理
<?php else: ?>
  指定したカスタムタクソノミーのアーカイブページ以外の処理
<?php endif; ?>

タクソノミースラッグは以下で確認します(プラグイン『Advanced Custom Fields』使用)

タクソノミースラッグの調べ方

タクソノミースラッグの調べ方

 

モバイル

<?php if ( wp_is_mobile() ) : ?>
  モバイル(スマホ・タブレット)のみの処理
<?php else: ?>
  モバイル(スマホ・タブレット)以外の処理
<?php endif; ?>

モバイル(スマホ・タブレット)以外なので、PCでの処理になります。

まとめ

その他、以下のような条件分岐もあります。

  • タグページ
  • 日付別、月別、年別アーカイブページ
  • 作成者ページ
  • 検索結果ページ
  • 404ページ

この辺は使う機会がほとんどないと思われるので書きませんでしたが、知りたい方は冒頭でも書きましたが以下のCodexでご確認下さい(上記以外にもたくさん種類があります)

条件分岐タグ - WordPress Codex 日本語版

以上になります。

この記事が役に立ったと思ったら、シェアボタンからX(旧Twitter)などにシェアすると、いいねされてフォロワーが増えたりすることがあるよ!

 

  • この記事を書いた人

じゅんぺい

37歳からWeb制作とブログ開始。Web制作歴5年目でコーディングとWordPressオリジナルテーマ制作が中心。これまで120件以上を納品。当ブログ月間最高15万PVで、370記事以上はWeb制作の技術記事。コンテンツ販売→累計売上1200万円&1500部超え。X(旧Twitter)フォロワー7200人以上。2024年3月からブログの経験を活かしてライターとしても活動を開始。

-WordPress
-