忘れずに覚えたい…覚えなくても見てすぐ使いたいWordPressの条件分岐タグ

今さら感はあるけど、自分のためにまとめたいシリーズの続き。
今回はWordPressの条件分岐タグ。これまたいちいち調べなくても大丈夫なように書き留めておきます。

条件分岐の基本

条件に当てはまるかどうかで表示・非表示を判断するので当然のようにif文で書いていきます。phpのif文とhtmlを合わせて書きます。

<?php if (条件1): ?>
  条件1に当てはまるときの内容
<?php else: ?>
  条件1に当てはまらないときの内容
<?php endif; ?>

いくつかの条件に当てはまるかどうか判断したいときはelseifを使います。これ便利だよな~。

<?php if(条件1): ?>
  条件1に当てはまるときの内容
<?php elseif(条件2): ?>
  条件2に当てはまるときの内容
<?php else: ?>
  条件1にも条件2にも当てはまらないときの内容
<?php endif; ?>

一つの条件だけに当てはまるものを表示させる場合はこちら。

<?php if(条件): ?>
  条件に当てはまるときの内容
<?php endif; ?> 

例えば、トップだけに何かを表示したい場合は次のように書きます。

<?php if (is_front_page() ||  is_home() ): ?>
  トップページで表示させたい内容
<?php endif; ?>

投稿ページの条件分岐

一般的な投稿ページとそれ以外ならこちら。投稿ページかそれ以外かという分岐。

<?php if ( is_single() ): ?>
  投稿ページの場合に表示させたい内容
<?php else: ?>
 それ以外のページで表示させたい内容
<?php endif; ?>

特定の投稿ページに表示させたいのであればこちら。特定の投稿ページかそれ以外の投稿か。

<?php if( is_single('投稿ID') ): ?>
  指定した投稿ページの場合に表示させたい内容
<?php else: ?>
  それ以外のページで表示させたい内容
<?php endif; ?>

もし、特定の投稿ページが複数ある場合はこちら。

<?php if( is_single( array('投稿ID','投稿ID','投稿ID') ) ): ?>
  指定した投稿ページの場合に表示させたい内容
<?php else: ?>
  それ以外のページで表示させたい内容
<?php endif; ?>

固定ページの条件分岐

固定ページかそれ以外か。

<?php if ( is_page() ): ?>
  固定ページでのみ表示させたい内容
<?php else: ?>
  それ以外のページで表示させたい内容
<?php endif; ?>

特定の固定ページだけに表示させたい。

<?php if( is_page('固定ページID') ): ?>
  指定した固定ページでのみ表示させたい内容
<?php else: ?>
  それ以外のページで表示させたい内容
<?php endif; ?>

特定の固定ページが複数ある場合。

<?php if( is_page( array('固定ページID','固定ページID','固定ページID') ) ): ?>
  指定した固定ページでのみ表示させたい内容
<?php else: ?>
  それ以外のページで表示させたい内容
<?php endif; ?>

記事ページ、または固定ページ、添付ファイルページに表示させる。

<?php if( is_singular() ): ?>
  「投稿ページ」もしくは「固定ページ」で表示させたい内容
<?php else: ?>
  それ以外のページで表示させたい内容
<?php endif; ?>

アーカイブページの条件分岐

記事一覧ページでの条件分岐がこちら。

<?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; ?>

特定のカテゴリーが複数ある場合。

<?php if( is_category( array('カテゴリーID', 'カテゴリーID') ) ): ?>
  指定したカテゴリーページでのみ表示させたい内容
<?php else: ?>
  それ以外のページで表示させたい内容
<?php endif; ?>

特定のカテゴリーに属する記事ページの場合。〇〇カテゴリーに属している記事ページに表示させるという意味です。今まで出てきたis_categoryではなくてin_categoryを使います。似ているので注意が必要だけど、使う場面も結構出てくるので便利ですね。

<?php if( in_category('カテゴリーID') ): ?>
  指定したカテゴリーに属する記事でのみ表示させたい内容
<?php else: ?>
  それ以外のページで表示させたい内容
<?php endif; ?>

特定のカテゴリーに属する記事ページで、指定したいカテゴリーが複数ある場合。

<?php if( in_category( array('カテゴリーID', 'カテゴリーID') ) ): ?>
  指定したカテゴリーに属するページでのみ表示させたい内容
<?php else: ?>
  それ以外のページで表示させたい内容
<?php endif; ?>

タグ別記事一覧ページ

<?php if( is_tag() ): ?>
  タグページでのみ表示させたい内容
<?php else: ?>
  それ以外のページで表示させたい内容
<?php endif; ?>

特定のタグ記事一覧ページ。

<?php if( is_tag('タグID') ): ?>
  指定したタグページでのみ表示させたい内容
<?php else: ?>
  それ以外のページで表示させたい内容
<?php endif; ?>

特定のタグが複数ある場合。

<?php if( is_tag( array('タグID', 'タグID') ) ): ?>
  指定したタグページでのみ表示させたい内容
<?php else: ?>
  それ以外のページで表示させたい内容
<?php endif; ?>

特定のタグに属する記事ページ。

<?php if( has_tag('タグID') ): ?>
  指定したタグを持つ記事ページでのみ表示させたい内容
<?php else: ?>
  それ以外のページで表示させたい内容
<?php endif; ?>

特定のタグに属する記事ページで、指定したいタグが複数ある場合。

<?php if( has_tag( array('タグID', 'タグID') ) ): ?>
  指定したタグを持つ記事ページでのみ表示させたい内容
<?php else: ?>
  それ以外のページで表示させたい内容
<?php endif; ?>

日付別アーカイブの条件分岐

日付別の記事一覧ページに表示させたい場合。年別・月別・日別のいずれも含む。

<?php if( is_date() ): ?>
  日付別記事一覧ページの場合に表示させたい内容
<?php else: ?>
  それ以外のページで表示させたい内容
<?php endif; ?>

年別の記事一覧ページ。

<?php if( is_year() ): ?>
  年別の記事一覧ページでのみ表示させたい内容
<?php endif; ?>

月別の記事一覧ページ。

<?php if( is_month() ): ?>
  月別の記事一覧ページでのみ表示させたい内容
<?php endif; ?>

日別の記事一覧ページ。

<?php if( is_day() ): ?>
  日別の記事一覧ページでのみ表示させたい内容
<?php endif; ?>

カスタム投稿でのアーカイブの条件分岐

<?php if ( is_post_type_archive() ): ?>
  カスタム投稿タイプのアーカイブページの場合に表示させたい内容
<?php else: ?>
  それ以外のページで表示させたい内容
<?php endif; ?>

特定のカスタム投稿のアーカイブの場合。

<?php if ( is_post_type_archive('カスタム投稿名') ): ?>
  特定のカスタム投稿タイプのアーカイブページの場合に表示させたい内容
<?php else: ?>
  それ以外のページで表示させたい内容
<?php endif; ?>

特定のカスタム投稿で、指定するカスタム投稿が複数ある場合。

<?php if ( is_post_type_archive( array('カスタム投稿名', 'カスタム投稿名') ) ): ?>
  特定のカスタム投稿タイプのアーカイブページの場合に表示させたい内容
<?php else: ?>
  それ以外のページで表示させたい内容
<?php endif; ?>

特定のカスタム投稿の投稿ページの場合。

<?php if ( is_singular( 'カスタム投稿名' ) ): ?>
  指定したカスタム投稿タイプの投稿ページの場合に表示させたい内容
<?php else: ?>
  それ以外のページで表示させたい内容
<?php endif; ?>

特定のカスタム投稿の投稿ページで、指定するカスタム投稿が複数ある場合。

<?php if ( is_singular( array('カスタム投稿名', 'カスタム投稿名') ) ): ?>
  指定したカスタム投稿タイプの投稿ページの場合に表示させたい内容
<?php else: ?>
  それ以外のページで表示させたい内容
<?php endif; ?>

カスタムタクソノミー(分類)の記事一覧の場合。

<?php if ( is_tax() ): ?>
  カスタムタクソノミーのアーカイブページの場合に表示させたい内容
<?php else: ?>
  それ以外のページで表示させたい内容
<?php endif; ?>

特定のカスタムタクソノミーの記事一覧の場合。

<?php if ( is_tax('カスタムタクソノミー名') ): ?>
  特定のカスタムタクソノミーのアーカイブページの場合に表示させたい内容
<?php else: ?>
  それ以外のページで表示させたい内容
<?php endif; ?>

特定のカスタムタクソノミーが複数ある場合。

<?php if ( is_tax( array('カスタムタクソノミー名','カスタムタクソノミー名') ) ): ?>
  特定のカスタムタクソノミーのアーカイブページの場合に表示させたい内容
<?php else: ?>
  それ以外のページで表示させたい内容
<?php endif; ?>

検索結果・ユーザーのアーカイブでの条件分岐

検索結果ページで表示する場合。

<?php if (  is_search() ): ?>
  検索ページでのみ表示させたい内容
<?php else: ?>
  それ以外のページで表示させたい内容
<?php endif; ?>

ユーザー(著者)別の記事一覧で表示させたい場合。

<?php if( is_author() ): ?>
  著者の記事一覧ページでのみ表示させたい内容
<?php else: ?>
  それ以外のページで表示させたい内容
<?php endif; ?>

特定のユーザー記事一覧ページの場合。

<?php if( is_author('ユーザーID') ): ?>
  特定の著者の記事一覧ページでのみ表示させたい内容
<?php else: ?>
  それ以外のページで表示させたい内容
<?php endif; ?>

まだ他にもあるとは思いますが、この辺りが自分がよく使うものなので、これにて一旦終了。
これ最近使うようになったなぁ~っていうのがあれば、随時追加していきます。

カスタムフィールドの値で条件分岐するなんてのも使ったことあるけど、これはまた別でまとめたいと思います。