WordPressではプログラミング言語のPHPが使用できますが、WordPressで使える条件分岐タグを入力すればより効率良く作業を進められるでしょう。しかし条件分岐タグは種類多いため、使用用途に戸惑うこともあります。
そこで今回はWordPressの条件分岐タグの書き方や使い方について、ソースコードを表示しながら解説していきます。
WordPress (ワードプレス) の条件分岐タグの書き方と基礎知識
PHPのif文で書く
条件分岐タグを書く時のPHPのif文を使用します。
- <?php if (条件) : ?>
- 条件に当てはまる時に表示するものを書く
- <?php else: ?>
- 条件に当てはまらない時に表示するものを書く
- <?php endif; ?>
またPHPとHTMLは同時に使えるので、条件の入力はHTMLで行えます。
- <?php if ( wp_is_mobile () ) : ?>
- <p>モバイルからの閲覧時に表示する文</p>
- <?php else: ?>
- <p>PCからの閲覧時に表示する文</p>
- <?php endif; ?>
*「wp_is_mobile () 」はWordPressで使用できる条件分岐タグで、スマホやタブレットから閲覧されているかの判定を行うことが可能です。
elseは省略して良い
表示させる条件を1つでも入力しておけば、else(表示させないもの)を省略しても問題ありません。
- <?php if ( wp_is_mobile () ) : ?>
- モバイルで表示するものを () 内に書く
- <?php endif; ?>
こちらの入力方法でもモバイル以外で閲覧した場合は表示されないので、elseを入力した時と同じ効果があります。
elseifを使うことでさらに細かな条件分岐が可能
細かく条件を出したい時は「elseif」を使用しましょう。
- <?php if ( is_single () ) : ?>
- ?記事ページで表示するものを書く
- <?php elseif ( is_page () ) : ?>
- ?固定ページで表示するものを書く
- <?php else: ?>
- ?と?のどちらにも当てはまらない時に表示するものを書く
- <?php endif; ?>
elseifは「 is_single () 」に当てはまらないものを表示できます。またelseifは何個でも使用可能なので思い通りに条件分岐を行えます。
「〇〇でないなら」を表す「!」
!を手前に入力すると「~~以外で」と意味が逆になるので覚えておきましょう。
- <?php i ( !is_single () ) : ?>
- 記事ページ以外で表示するものを書く
- <?php endif; ?>
複数の条件を組み合わせた論理演算子
【AND】条件1 かつ 条件2
条件をより絞りたい時は「&&」を使用します。
- <?php if ( wp_is_mobile () && is_single () ) : ?>
- 「モバイル」かつ「記事ページ」の時に表示するものを書く
- <?php endif; ?>
こちらで「モバイルで記事ページを閲覧した時に表示される」という指示になります。
【OR】条件1 もしくは 条件2
どちらか片方に当てはまる時に表示させる場合は「 || 」を使用します。
- <?php if ( wp_is_mobile () || is_single () ) : ?>
- 「モバイル」もしくは「記事ページ」の時に表示するものを書く
- <?php endif; ?>
こちらで「モバイルか記事ページを閲覧した時に表示させる」という指示になります。
間違いやすい表記
PHPはコードを間違えて入力するとエラーとなり表示できないので注意しましょう。
エラーが出た時に確認するコード
- 「if」「elself」の後ろは「:」コロン。「;」セミコロンだとエラー
- 「endif」の後ろは「;」セミコロン。「:」コロンだとエラー
- 括弧 () の数を合わせる。 () で1セット
- すべて半角で入力する。<p>タグ内の文章は大文字でもエラーにはならない
入力数が多いとエラーを探すのが難しくなるため、プレビューやデペロッパーツールなどでエラーの確認しながら作業を進めましょう。
コメントアウトで後から見てもわかりやすく
「//」を入力するとその後に書かれた文章は入力画面にしか表示されないので、管理しやすくなります。
- <?php if(略): //◯◯の時 ?>
- 略
- <?php else: //◯◯でない時?>
- 略
- <?php endif; //◯◯の条件分岐終了 ?>
またコードも対象となるので、PHPで入力したものを一時的にWebサイトから消すことも可能です。
記事やウィジェットには使えない
WordPressにはテキストエディターがありHTMLの入力は可能ですが、PHPには対応していません。そのためPHPで入力してもただの文字列となります。テキストエディターでは記事やウィジェットに反映できないので覚えておきましょう。
条件分岐タグがよく使われる場所
WordPressでphpを使用する時は主に「テーマエディター」となります。
画面右側に「ヘッダー」「フッター」などのPHPがあるので、中央の入力画面で編集しましょう。ただし入力して保存すると元に戻すのが難しくなるので、編集する時は編集前の状態をテキストファイルにでも保存しておきましょう。
WordPress (ワードプレス) の条件分岐タグの基本形と論理演算子
条件1と条件2 が等しいなら
条件1と条件2が等しい時は「== 」を使用します。
- <?php if (条件1 == 条件2) :?>
- 条件1と条件2が等しい場合
- <?php endif;?>
条件1と条件2 が等しくない
条件1と条件2が等しくない時は「!==」を使用します。
- <?php if (条件1 !== 条件2) :?>
- 条件1と条件2が等しくない場合
- <?php endif;?>
よく使うWordPress (ワードプレス) の条件分岐タグ
トップページ
トップページで使う条件分岐タグは「is_front_page () 」「is_home () 」です。
- <?php if ( is_front_page () || is_home () ) : ?>
- トップページで行う処理を書く
- <?php endif; ?>
「is_front_page () 」「is_home () 」の違い
- 表示設定→フロントページ表示→最新の投稿=どちらもトップページを表示
- is_home():表示設定→フロントページ表示→固定ページ=投稿ページ
- is_front_page():表示設定→フロントページ表示→固定ページ=フロントページを表示
最新の投稿を選択している状態では、どちらも同じなので使うときは注意しましょう。
固定ページ
固定ページで使う条件分岐タグは「is_page () 」です。
- <?php if ( is_page () ) : ?>
- 全ての固定ページで行う処理を書く
- <?php endif; ?>
「is_page () 」でページ指定をするとき
- ID=is_page (ID)
- スラッグ=is_page (‘スラッグ’)
- タイトル=is_page (’タイトル’)
- 複数のページ=is_page (array(〇,’〇〇’) )
記事ページ
記事ページで使う条件分岐タグは「 is_single () 」です。
- <?php if ( is_single () ) : ?>
- 全ての個別投稿ページで行う処理を書く
- <?php endif; ?>
「is_single () 」でページ指定をするとき
- ID=is_page (ID)
- スラッグ=is_page (‘スラッグ’)
- タイトル=is_page (’タイトル’)
- 複数のページ=is_page (array(〇,’〇〇’) )
記事もしくは固定ページ
記事もしくは固定ページで使う条件分岐タグは「is_singular () 」です。
- <?php if ( is_singular () ) : ?>
- //固定ページ、もしくは個別投稿ページ、もしくは添付ファイルページで行う処理を書く
- <?php endif; ?>
特定や複数のカスタム投稿を条件とするとき
- 特定のカスタム投稿= is_singular (‘ページ名’)
- 複数のカスタム投稿= is_singular (array (‘ページ名’,’ページ名’) )
アーカイブページ
アーカイブページで使う条件分岐タグは「is_arhive () 」です。
- <?php if ( is_arhive () ) : ?>
- アーカイブページで行う処理を書く
- <?php endif; ?><?php if ( is_singular () ) : ?>
- //固定ページ、もしくは個別投稿ページ、もしくは添付ファイルページで行う処理を書く
- <?php endif; ?>
アーカイブページにはカテゴリーやタグ、作者別や日別など全てのアーカイブページは含まれています。
カテゴリーページ
カテゴリーページで使う条件分岐タグは「is_category () 」です。
- <?php if ( is_category () ) : ?>
- カテゴリーページで行う処理を書く
- <?php endif; ?><?php if ( is_arhive () ) : ?>
- アーカイブページで行う処理を書く
- <?php endif; ?><?php if ( is_singular () ) : ?>
- //固定ページ、もしくは個別投稿ページ、もしくは添付ファイルページで行う処理を書く
- <?php endif; ?>
「is_category()」でページ指定をするとき
- ID=is_category (ID)
- スラッグ=is_category (‘スラッグ’)
- タイトル=is_category (’タイトル’)
- 複数のページ=is_category (array (〇,’〇〇’) )
タグページ
タグページで使う条件分岐タグは「is_tag () 」です。
- <?php if ( is_tag() ) : ?>
- 全てのタグページで行う処理を書く
- <?php endif; ?>
「is_tag () 」でページ指定をするとき
- ID=is_tag (ID)
- スラッグ=is_tag (‘スラッグ’)
- タイトル=is_tag (’タイトル’)
- 複数のページ=is_tag (array (〇,’〇〇’) )
日付別ページ
日付別ページで使用する条件分岐タグは「 is_date () 」です。
- <?php if( is_date () ) : ?>
- 日・月・年別の記事一覧ページでのみ表示するものをココに書く
- <?php else: ?>
- それ以外のページで表示するものをココに
- <?php endif; ?>
日・月・年を個別に指定するとき
- 日別=is_day ()
- 月別=is_month ()
- 年別=is_year ()
検索結果ページ
検索結果ページで使う条件分岐タグは「is_search () 」です。
- <?php if ( is_search () ) : ?>
- 検索結果ページで行う処理を書く
- <?php endif; ?>
404エラーページ
404エラーページで使う条件分岐タグは「is_404 () 」です。
- <?php if ( is_404 () ) : ?>
- 404ページで行う処理を書く
- <?php endif; ?>
アイキャッチ画像の有無
アイキャッチ画像の有無で使用する条件分岐タグは「 has_post_thumbnail () 」です。
- <?php if ( has_post_thumbnail () ) : ?>
- アイキャッチ画像指定されている場合
- <?php the_post_thumbnail () ; ?>
- <?php else: ?>
- アイキャッチ画像指定されていない場合に代替画像を表示
- <?php endif; ?>
WordPress (ワードプレス) の便利な条件分岐タグ
作成者ページ
作成者ページで使う条件分岐タグは「 is_author () 」です。
- <?php if ( is_author () ) : ?>
- 作成者ページで行う処理を書く
- <?php endif; ?>
「 is_author () 」でページ指定をするとき
- ID=is_author (ID)
- ユーザー名=is_author (‘ユーザー名’)
- 複数のページ=is_author (array (〇,’〇〇’) )
2ページ以降
2ページ以降で使う条件分岐タグは「 is_paged () 」です。
- <?php if ( is_paged () ) : ?>
- 2ページ目以降のページで行う処理を書く
- <?php endif; ?>
カスタム投稿タイプのアーカイブページ
カスタム投稿タイプのアーカイブページで使う条件分岐タグは「 is_post_type_archive () 」です。
- <?php if ( is_post_type_archive() ) : ?>
- カスタム投稿タイプの一覧ページで行う処理を書く
- <?php endif; ?>
特定や複数のカスタム投稿を条件とするとき
- 特定のカスタム投稿= is_post_type_archive (‘ページ名’)
- 複数のカスタム投稿= is_post_type_archive (array (‘ページ名’,’ページ名’) )
カスタム分類ページ
カスタム分類ページで使用する条件分岐タグは「is_tax () 」です。
- <?php if ( is_tax() ) : ?>
- カスタム分類「news_cat」の一覧ページで行う処理を書く
- <?php endif; ?>
特定や複数のカスタム分類ページを条件とするとき
- 特定のカスタム投稿= is_tax (‘ページ名’)
- 複数のカスタム投稿= is_tax (array (‘ページ名’,’ページ名’) )
モバイル
モバイルで使用する条件分岐タグは「 wp_is_mobile () 」です。
- <?php if ( wp_is_mobile () ) : ?>
- モバイル(スマホ・タブレット)で行う処理を書く
- <?php endif; ?>
WordPress (ワードプレス)の条件分岐まとめ
条件分岐タグを覚えれば、PHP言語でWordPressをカスタマイズするときに役立ちます。
- 基本は<?php if () : ?>で始まり、<?php endif : ?>で閉じる
- elseは省略できる
- エラーになりやすいコードには注意する
- 条件分岐タグで細かいページ指定もできる
当ページからコピペするだけで条件分岐タグが使用できるので、試してみてはいかがでしょうか。