WordPressの代表的な条件分岐まとめ

WordPressの条件分岐で使用する代表的なタグをまとめました。
条件分岐を使用することで、条件に合わせたページごとに表示やコードを切り替えることができます。
条件分岐の詳しい使い方は、こちらの記事でまとめています。
トップページの条件分岐
サイトのトップページ(ホームページ)だけに限定する条件分岐です。
<?php if (is_home() || is_front_page()) : ?>
<!-- トップページでのみ表示 -->
<?php endif; ?>
ホームページを分岐するis_home()に加えてis_front_page()も指定することで、固定ページをホームに設定している場合も分岐するようになります。
投稿ページの条件分岐
投稿ページだけに限定する条件分岐です。
<?php if (is_single()) : ?>
<!-- 投稿ページでのみ表示 -->
<?php endif; ?>
条件分岐にis_single()を設定します。
特定の投稿ページだけ
引数に投稿IDやスラッグ名を指定することで、特定の投稿ページに限定できます。
<?php if (is_single('5')) : ?>
<!-- 投稿IDが「5」の投稿ページで表示 -->
<?php endif; ?>
<?php if (is_single('news')) : ?>
<!-- スラッグが「news」の投稿ページで表示 -->
<?php endif; ?>
複数の投稿ページに限定
配列で複数の条件を指定した場合、いずれかに当てはまる投稿ページに限定できます。
<?php if (is_single(array('5', 'news')) : ?>
<!-- 投稿IDが「5」、または、スラッグが「news」の投稿ページで表示 -->
<?php endif; ?>
固定ページの条件分岐
固定ページだけに限定する条件分岐です。
<?php if (is_page()) : ?>
<!-- 固定ページでのみ表示 -->
<?php endif; ?>
条件分岐にis_page()を設定します。
特定の固定ページだけ
引数に投稿IDやスラッグ名を指定することで、特定の固定ページに限定できます。
<?php if (is_page('5')) : ?>
<!-- ページIDが「5」の固定ページで表示 -->
<?php endif; ?>
<?php if (is_page('contact')) : ?>
<!-- スラッグが「contact」の固定ページで表示 -->
<?php endif; ?>
複数の固定ページに限定
配列で複数の条件を指定した場合、いずれかに当てはまる固定ページに限定できます。
<?php if(is_page(array('5', '12', '23'))): ?>
<!-- ページIDが「5」、「12」、「23」の固定ページで表示 -->
<?php endif; ?>
カスタム投稿ページを含む条件分岐
カスタム投稿ページを含む個別ページだけに限定する条件分岐です。
<?php if(is_singular()): ?>
<!-- 固定ページ、投稿ページなどに表示 -->
<?php endif; ?>
条件分岐にis_singular()を設定することで、固定ページ、投稿ページ、カスタム投稿ページ、添付ファイルページに関連する条件分岐を設定できます。
特定のカスタム投稿ページだけ
引数にカスタム投稿タイプ名を指定することで、特定のカスタム投稿に限定できます。
<?php if(is_singular('news')): ?>
<!-- 投稿タイプが「news」のカスタム投稿ページでのみ表示 -->
<?php endif; ?>
ページID、ページスラッグ、ページタイトルは指定できません。
複数のカスタム投稿ページに限定
配列で複数の条件を指定した場合、いずれかに当てはまるカスタム投稿ページに限定できます。
<?php if(is_singular(array('news', 'topics')): ?>
<!-- 投稿タイプが「news」または「topics」のカスタム投稿ページでのみ表示 -->
<?php endif; ?>
カスタム投稿ページを除く
引数に「post」を指定することで、カスタム投稿を除いた通常の投稿ページだけに限定できます。
<?php if(is_singular('post')): ?>
<!-- 通常の投稿ページでのみ表示 -->
<?php endif; ?>
特定のページの条件分岐
検索結果ページのみ
検索結果を表示するページだけに限定する条件分岐です。
<?php if(is_search()): ?>
<!-- 検索結果ページでのみ表示 -->
<?php endif; ?>
条件分岐にis_search()を設定します。
404ページのみ
404ページだけに限定する条件分岐です。
<?php if(is_404()): ?>
<!-- 404ページでのみ表示 -->
<?php endif; ?>
条件分岐にis_404()を設定します。
プライバシーポリシーページのみ
WordPressのプライバシー設定で、プライバシーポリシーページに指定した固定ページだけに限定する条件分岐です。
<?php if(is_privacy_policy()): ?>
<!-- プライバシーポリシーページでのみ表示 -->
<?php endif; ?>
条件分岐にis_privacy_policy()を設定します。
アーカイブページの条件分岐
投稿一覧を表示するアーカイブページだけに限定する条件分岐です。
<?php if(is_archive()): ?>
<!-- アーカイブページページでのみ表示 -->
<?php endif; ?>
条件分岐にis_archive()を設定します。
アーカイブページには、カテゴリー、タグ、投稿者、日付ごとの記事一覧ページが含まれます。
アーカイブの1ページ目だけ
アーカイブページの1ページ目だけに限定する条件分岐です。
<?php if(is_archive() && !is_paged()): ?>
<!-- アーカイブページの1ページ目にのみ表示 -->
<?php endif; ?>
条件分岐に設定したis_paged()は、現在表示しているページが2ページ目以降かどうかを判定するWordPressの関数です。先頭に「!」を加えて!is_paged()にすることで、1ページ目かを判定しています。
カテゴリーページの条件分岐
カテゴリーページだけに限定する条件分岐です。
<?php if(is_category()): ?>
<!-- カテゴリーページでのみ表示 -->
<?php endif; ?>
条件分岐にis_category()を設定します。
特定のカテゴリーページだけ
引数にカテゴリーIDやスラッグ名を指定することで、特定のカテゴリーページに限定できます。
<?php if(is_category('32')): ?>
<!-- カテゴリーIDが「32」のカテゴリーページで表示 -->
<?php endif; ?>
<?php if(is_category('wordpress')): ?>
<!-- スラッグが「wordpress」のカテゴリーページで表示 -->
<?php endif; ?>
複数のカテゴリーページに限定
配列で複数の条件を指定した場合、いずれかに当てはまる固定ページに限定できます。
<?php if(is_category(array('32', 'wordpress'))): ?>
<!-- ページIDが「5」、もしくはスラッグが「wordpress」のカテゴリーページで表示 -->
<?php endif; ?>
カテゴリーページの1ページ目だけ
カテゴリーページの1ページ目だけに限定する条件分岐です。
<?php if(is_category() && !is_paged()): ?>
<!-- カテゴリーページの1ページ目にのみ表示 -->
<?php endif; ?>
先頭に「!」を加えた!is_paged()を指定することで、1ページ目かどうかを判定しています。
カテゴリーに属する条件分岐
特定のカテゴリーに属する投稿ページだけに限定する条件分岐です。
<?php if(in_category('13')): ?>
<!-- 指定したカテゴリーに属する投稿ページで表示 -->
<?php endif; ?>
条件分岐にin_category()を設定します。
引数に指定した、カテゴリーIDやスラッグ名のカテゴリーに属する投稿ページに限定されます。
複数のカテゴリーに属する投稿ページに限定
配列で複数の条件を指定した場合、いずれかのカテゴリーに当てはまる投稿ページに限定できます。
<?php if(in_category(array('7', '13'))): ?>
<!-- カテゴリーIDが「7」、もしくは「13」のカテゴリーに属する投稿ページで表示 -->
<?php endif; ?>
カテゴリーIDの代わりに、カテゴリーのスラッグ名を指定することもできます。
タグアーカイブページの条件分岐
タグのアーカイブページだけに限定する条件分岐です。
<?php if(is_tag()): ?>
<!-- タグのアーカイブページでのみ表示 -->
<?php endif; ?>
条件分岐にis_tag()を設定します。
特定のタグアーカイブページだけ
引数にタグIDやタグのスラッグ名を指定することで、特定のタグアーカイブページに限定できます。
<?php if(is_tag('3')): ?>
<!-- タグIDが「3」のタグアーカイブページで表示 -->
<?php endif; ?>
<?php if(is_tag('tips')): ?>
<!-- タグのスラッグ名が「tips」のタグアーカイブページで表示 -->
<?php endif; ?>
タグIDの数字は、「’」シングルクォーテーションがなくても記述できます。
複数のタグアーカイブページに限定
配列で複数の条件を指定した場合、いずれかに当てはまるタグアーカイブページに限定できます。
<?php if(is_tag(array('3', 'tips'))): ?>
<!-- ページIDが「3」、もしくはタグのスラッグ名が「tips」のタグアーカイブページで表示 -->
<?php endif; ?>
タグに関する条件分岐
タグが設定されている投稿ページだけに限定する条件分岐です。
<?php if(has_tag()): ?>
<!-- タグを持つ投稿ページで表示 -->
<?php endif; ?>
条件分岐にhas_tag()を設定します。
特定のタグを持つ投稿ページに限定
引数にタグIDやタグのスラッグ名を指定することで、該当するタグを持つ特定の投稿ページに限定できます。
<?php if(has_tag('tips')): ?>
<!-- 「tips」タグを持つ投稿ページで表示 -->
<?php endif; ?>
日付アーカイブの条件分岐
日付別の記事一覧を表示するアーカイブページだけに限定する条件分岐です。
<?php if(is_date()): ?>
<!-- 日付アーカイブページでのみ表示 -->
<?php endif; ?>
条件分岐にis_date()を設定します。
日付アーカイブページには、年別、月別、日別のアーカイブページが含まれます。
年月日別の条件分岐
年別、月別、日別それぞれの日付アーカイブページに限定する条件分岐です。
<?php if(is_year()) : ?>
<!-- 年別の記事一覧ページでのみ表示 -->
<?php endif; ?>
<?php if(is_month()) : ?>
<!-- 年月別の記事一覧ページでのみ表示 -->
<?php endif; ?>
<?php if(is_day()) : ?>
<!-- 年別の記事一覧ページでのみ表示 -->
<?php endif; ?>
投稿者別アーカイブの条件分岐
投稿者別の記事一覧を表示するアーカイブページだけに限定する条件分岐です。
<?php if(is_author()): ?>
<!-- 投稿者別アーカイブページでのみ表示 -->
<?php endif; ?>
条件分岐にis_author()を設定します。
特定の投稿者のアーカイブページに限定
引数にユーザーIDやニックネームを指定することで、特定の投稿者のアーカイブページに限定できます。
<?php if(is_author('4')): ?>
<!-- ユーザーID「4」の投稿者のアーカイブページでのみ表示 -->
<?php endif; ?>
<?php if(is_author('tanaka')): ?>
<!-- ニックネームが「tanaka」の投稿者のアーカイブページでのみ表示 -->
<?php endif; ?>
カスタム投稿アーカイブページの条件分岐
カスタム投稿のアーカイブページだけに限定する条件分岐です。
<?php if(is_post_type_archive()): ?>
<!-- カスタム投稿のアーカイブページでのみ表示 -->
<?php endif; ?>
条件分岐にis_post_type_archive()を設定します。
特定のカスタム投稿アーカイブページだけ
引数に投稿タイプ名を指定することで、特定のカスタム投稿のアーカイブページに限定できます。
<?php if(is_post_type_archive('shop')): ?>
<!-- カスタム投稿タイプ名が「shop」のアーカイブページでのみ表示 -->
<?php endif; ?>
複数のカスタム投稿アーカイブページに限定
配列で複数の条件を指定した場合、いずれかに当てはまるカスタム投稿タイプのアーカイブページに限定できます。
<?php if(is_post_type_archive(array('shop', 'item'))): ?>
<!-- 投稿タイプ名が「shop」または「item」のカスタム投稿アーカイブページでのみ表示 -->
<?php endif; ?>
カスタムタクソノミーの条件分岐
カスタムタクソノミーのアーカイブページだけに限定する条件分岐です。
<?php if(is_tax()): ?>
<!-- カスタムタクソノミーのアーカイブページでのみ表示 -->
<?php endif; ?>
条件分岐にis_tax()を設定します。
特定のカスタムタクソノミーアーカイブページだけ
引数にタクソノミー名を指定することで、特定のカスタムタクソノミーのアーカイブページに限定できます。
<?php if(is_tax('taxonomy')): ?>
<!-- タクソノミー名が「taxonomy」のアーカイブページでのみ表示 -->
<?php endif; ?>
複数のカスタム投稿アーカイブページに限定
配列で複数の条件を指定した場合、いずれかに当てはまるカスタムタクソノミーのアーカイブページに限定できます。
<?php if(is_tax(array('taxonomy', 'product'))): ?>
<!-- タクソノミー名が「taxonomy」または「product」のアーカイブページでのみ表示 -->
<?php endif; ?>
カスタムテンプレートの条件分岐
カスタムテンプレートを使用した固定ページに限定する条件分岐です。
<?php if(is_page_template()): ?>
<!-- カスタムテンプレートを使用した固定ページで表示 -->
<?php endif; ?>
条件分岐にis_page_template()を設定します。
カスタムテンプレートを使用している固定ページすべてが対象となります。
特定のカスタムテンプレートを使用
特定のカスタムテンプレートを使用した固定ページだけに限定する条件分岐です。
<?php if(is_page_template('page_template.php')): ?>
<!-- テンプレート「page_template.php」を使用した固定ページで表示 -->
<?php endif; ?>
引数に指定したテンプレートファイルを使用している固定ページに限定されます。
記事ページの設定による条件分岐
アイキャッチが設定されているか
記事にアイキャッチ画像が設定されているか判別する条件分岐です。
<?php if(has_post_thumbnail()): ?>
<!-- アイキャッチ画像が設定されている場合に表示 -->
<?php endif; ?>
引数に投稿IDを指定することで、特定の記事ページのみ判別することも可能です。
<?php if(has_post_thumbnail(13)): ?>
<!-- 投稿IDが「13」のページでアイキャッチ画像が設定されている場合に表示 -->
<?php endif; ?>
抜粋が入力されているか
記事に抜粋が記入されているか判別する条件分岐です。
<?php if(has_excerpt()): ?>
<!-- 抜粋が記入されている場合に表示 -->
<?php endif; ?>
引数に投稿IDを指定することで、特定の記事ページのみ判別することも可能です。
<?php if(has_excerpt(13)): ?>
<!-- 投稿IDが「13」のページに抜粋が入力されている場合に表示 -->
<?php endif; ?>
コメントが許可されているか
記事のコメントが許可されているか判別する条件分岐です。
<?php if(comments_open()): ?>
<!-- コメントが許可されている場合に表示 -->
<?php endif; ?>
引数に投稿IDを指定することで、特定の記事ページのみ判別することも可能です。
<?php if(comments_open(13)): ?>
<!-- 投稿IDが「13」のページでコメントが許可されている場合に表示 -->
<?php endif; ?>
管理画面の条件分岐
管理画面のページだけに限定する条件分岐です。
<?php if(is_admin()): ?>
<!-- 管理画面のページでのみ表示 -->
<?php endif; ?>
条件分岐にis_admin()を設定して、現在表示されているページが管理画面内のページかどうか判別します。
ログイン中のユーザーのみ
ユーザーがWordPressの管理画面にログインしている時だけに限定する条件分岐です。
<?php if(is_user_logged_in()): ?>
<!-- ユーザーがログインしている場合のみ表示 -->
<?php endif; ?>
モバイルデバイスの条件分岐
スマートフォンやタブレットなどのモバイルデバイスだけに限定する条件分岐です。
<?php if(wp_is_mobile()): ?>
<!-- モバイルデバイスからの閲覧時のみ表示 -->
<?php endif; ?>
端末情報を取得して、スマートフォンやタブレットからのアクセスかどうかを判別しています。モバイルデバイス以外の指定でPCに限定することもできます。


