【WordPress】使いこなしたい条件分岐(if文)のまとめ
2019年9月27日
WordPress
この記事のURLとタイトルをコピーする
WordPressには、たくさんの条件分岐のタグが用意されています。
これらのタグを使うことで、「トップページにだけ表示させる」や「PCとモバイルで表示を変える」などの指定をすることができるようになります。
今回は私がよく使う条件分岐のタグをまとめてみました。
これを使うことにより、同じテンプレートでも異なる条件での適用で、全く違う見栄えにすることも可能です。
まずは基本的な条件分岐の書き方を確認しましょう。
elseを書かなくていいので、コードもすっきりと見やすくなります。
1つ目のif(条件)に当てはまらないとき、2つ目のelseif(条件)で判定してくれます。
elseifはいくつ設定しても大丈夫です。
上記のis_pageは、固定ページを意味しています。
「固定ページ以外の場合」という判定で、任意の内容を表示させることができます。
上記では投稿IDを使ってページ指定していますが、他にもスラッグを使って指定することも可能です。
上記では投稿IDを使ってページ指定していますが、他にもスラッグを使って指定することも可能です。
function.phpに、以下のコードを追加します。
今回まとめた条件分岐タグは一部で、他のタグはWordPressの公式ドキュメントに記載されています。
興味のある方は、ぜひ確認してみてください。
これらのタグを使うことで、「トップページにだけ表示させる」や「PCとモバイルで表示を変える」などの指定をすることができるようになります。
今回は私がよく使う条件分岐のタグをまとめてみました。
もくじ
条件分岐とは?
条件分岐は、「指定された条件に合うか、合わないか」を判断し、その判断に応じて処理を実行させることができます。これを使うことにより、同じテンプレートでも異なる条件での適用で、全く違う見栄えにすることも可能です。
まずは基本的な条件分岐の書き方を確認しましょう。
条件分岐(if文)の基本的な書き方
条件分岐は、PHPというプログラミング言語で記述します。
1 2 3 4 5 |
<?php if (条件) : ?> 条件に当てはまるときに表示させるもの <?php else: ?> 条件に当てはまらないときに表示させるもの <?php endif; ?> |
elseは省略して書ける
例えば、「条件に当てはまるときにだけ表示し、その他では一切表示させない」というときです。
1 2 3 |
<?php if (条件) : ?> 条件に当てはまるときに表示させるもの <?php endif; ?> |
elseifで分岐条件を細かく指定できる
複数の条件で細かく設定することもできます。
1 2 3 4 5 6 7 |
<?php if (条件) : ?> 条件に当てはまるときに表示させるもの <?php elseif (条件2) : ?> 条件2に当てはまるときに表示させるもの <?php else: ?> 条件に当てはまらないときに表示させるもの <?php endif; ?> |
elseifはいくつ設定しても大丈夫です。
「!」は「〇〇でないときに」という意味
条件の最初に「!」をつけることで、「その条件に当てはまらない場合」の条件分岐を判定することができます。
1 2 3 |
<?php if ( !is_page() ) : ?> 固定ページ以外で表示させるもの <?php endif; ?> |
「固定ページ以外の場合」という判定で、任意の内容を表示させることができます。
よく使う条件分岐
ホーム(トップページ)だけ
1 2 3 4 5 6 7 |
<?php if ( is_home() || is_front_page() ) : ?> ホーム(トップページ)でのみ表示させるもの <?php endif; ?> →ホーム(トップページ)の1ページ目だけ <?php if( ( is_home() || is_front_page() ) && !is_paged() ) : ?> ホーム(トップページ)の1ページ目のみに表示させるもの <?php endif; ?> |
2ページ目以降だけ
1 2 3 |
<?php if ( is_paged() ) : ?> 2ページ目以降のページで表示させるもの <?php endif; ?> |
固定ページだけ
1 2 3 4 5 6 7 |
<?php if ( is_page() ) : ?> 固定ページでのみ表示させるもの <?php endif; ?> →特定の固定ページだけ <?php if( is_page('投稿ID') ) : ?> 指定した記事でのみ表示させるもの <?php endif; ?> |
投稿ページだけ
1 2 3 4 5 6 7 |
<?php if ( is_single() ) : ?> 記事ページでのみ表示させるもの <?php endif; ?> →特定の投稿ページだけ <?php if( is_single('投稿ID') ) : ?> 指定した記事でのみ表示させるもの <?php endif; ?> |
固定ページもしくは投稿ページだけ
1 2 3 |
<?php if( is_singular() ) : ?> 「投稿ページ」もしくは「固定ページ」で表示させるもの <?php endif; ?> |
アーカイブページだけ
1 2 3 4 5 6 7 8 |
<?php if( is_archive() ) : ?> アーカイブページでのみ表示させるもの <?php endif; ?> アーカイブページとは、「カテゴリー別」「タグ別」「投稿者別」「日付別」の記事一覧ページのことです。 →アーカイブページの1枚目だけ <?php if( is_archive() && !is_paged() ) : ?> アーカイブの1ページ目でのみ表示させるもの <?php endif; ?> |
カテゴリーページだけ
1 2 3 |
<?php if( is_category() ) : ?> カテゴリーページでのみ表示させるもの <?php endif; ?> |
特定のカテゴリーページだけ
1 2 3 |
<?php if( is_category() && !is_paged() ) : ?> カテゴリーの1ページ目でのみ表示させるもの <?php endif; ?> |
特定した複数のカテゴリーページ
1 2 3 |
<?php if( is_category( array('カテゴリーID', 'カテゴリーID') ) ) : ?> 指定したカテゴリーページでのみ表示させるもの <?php endif; ?> |
タグ別ページだけ
1 2 3 |
<?php if( is_tag('タグID') ) : ?> タグページでのみ表示させるもの <?php endif; ?> |
特定のタグページだけ
1 2 3 |
<?php if( is_tag('タグID') ) : ?> 指定したタグページでのみ表示させるもの <?php endif; ?> |
複数のタグページ
1 2 3 |
<?php if( is_tag( array('タグID','タグスラッグ','タグスラッグ') ) ) : ?> 指定したタグページでのみ表示させるもの <?php endif; ?> |
検索結果のページだけ
1 2 3 |
<?php if ( is_search() ) : ?> 検索ページでのみ表示させるもの <?php endif; ?> |
404ページだけ
1 2 3 |
<?php if ( is_404() ) : ?> 404ページでのみ表示させるもの <?php endif; ?> |
覚えておくと便利な条件分岐
作成者ページだけ
1 2 3 |
<?php if ( is_author() ) : ?> 作成者ページで行う処理を書く <?php endif; ?> |
特定の作成者ページだけ
1 2 3 |
<?php if ( is_author(ユーザーID) ) : ?> 指定したユーザーIDの作成者ページで表示させるもの <?php endif; ?> |
カスタム投稿のアーカイブページだけ
1 2 3 |
<?php if ( is_post_type_archive() ) : ?> カスタム投稿タイプのアーカイブページで表示させるもの <?php endif; ?> |
特定のカスタム投稿のアーカイブページだけ
1 2 3 |
<?php if ( is_post_type_archive('投稿タイプのスラッグ') ) : ?> 指定した投稿タイプのスラッグのアーカイブページで表示させるもの <?php endif; ?> |
カスタムタクソノミーのページだけ
1 2 3 |
<?php if( is_tag() ) : ?> カスタムタクソノミーのページでのみ表示させるもの <?php endif; ?> |
特定のカスタムタクソノミーのページだけ
1 2 3 |
<?php if( is_tag('タグID') ) : ?> 指定したタグページでのみ表示さるもの <?php endif; ?> |
アイキャッチ画像の差し替え(No Image)
1 2 3 4 5 |
<?php if ( has_post_thumbnail() ) : ?> <?php the_post_thumbnail(); ?> //アイキャッチ画像指定されている場合 <?php else: ?> アイキャッチが指定されていないときに表示させる代替画像を指定 <?php endif; ?> |
アイキャッチ機能を有効化する
アイキャッチ機能を使うには、一度有効にさせる必要があります。function.phpに、以下のコードを追加します。
1 |
add_theme_support( 'post-thumbnails' ); |
モバイル(スマホ・タブレット)だけ
1 2 3 |
<?php if ( wp_is_mobile() ) : ?> モバイル(スマホ・タブレット)で行う処理 <?php endif; ?> |
まとめ
カスタマイズで使うことの多い条件分岐は、使いこなせるととても便利なタグです。今回まとめた条件分岐タグは一部で、他のタグはWordPressの公式ドキュメントに記載されています。
興味のある方は、ぜひ確認してみてください。
この記事のURLとタイトルをコピーする