WordPressで使う代表的な条件分岐

HTMLサイトをWordPressにする本

目次

トップページ関連の条件分岐

フロントページ(サイトのトップページ)に当てはまる場合

<?php if(is_front_page()): ?>
  <!--もし「フロントページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

ホームページ(ブログのトップページ)に当てはまる場合

<?php if(is_home()): ?>
  <!--もし「ホームページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

フロントページとホームページに当てはまる場合

<?php if(is_front_page() || is_home()): ?>
  <!--もし「フロントページ」もしくは「ホームページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

投稿ページ関連の条件分岐

投稿ページに当てはまる場合

<?php if(is_single()): ?>
  <!--もし「投稿ページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

投稿ページ(カスタム投稿を除く)に当てはまる場合

<?php if(is_singular('post')): ?>
  <!--もし「個別投稿ページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

指定した投稿ページに当てはまる場合(投稿ID指定)

※ID指定の場合は、シングルクォーテーションがなくてもOK

<?php if(is_single('5')): ?>
  <!--もし「投稿ページ」のIDが「5」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

指定した投稿ページに当てはまる場合(スラッグ指定)

<?php if(is_single('newyear-holiday')): ?>
  <!--もし「投稿ページ」のスラッグ名が「newyear-holiday」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

複数指定した投稿ページのいずれかに当てはまる場合

※ID指定の場合は、シングルクォーテーションがなくてもOK

<?php if(is_single(array('5', 'newyear-holiday'))): ?>
  <!--もし「投稿ページ」のIDが「5」、もしくは、指定したスラッグが「newyear-holiday」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

特定のカテゴリーを持つ場合

<?php if(has_category('art')): ?>
  <!--もし「art」というカテゴリーを持つ場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

特定のタグを持つ場合

<?php if(has_tag('osaka')): ?>
  <!--もし「osaka」というタグを持つ場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

タグの有無

<?php if(has_tag() == true): ?>
  <!--もしタグがある場合は、コンテンツを表示 or 処理-->
<?php else: ?>
  <!--タグがない場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

固定ページ関連の条件分岐

固定ページに当てはまる場合

<?php if(is_page()): ?>
  <!--もし「固定ページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

指定した固定ページに当てはまる場合(投稿ID指定)

※ID指定の場合は、シングルクォーテーションがなくてもOK

<?php if(is_page('5')): ?>
  <!--もし「固定ページ」のIDが「5」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

指定した固定ページに当てはまる場合(スラッグ指定)

<?php if(is_page('contact')): ?>
  <!--もし「固定ページ」のスラッグ名が「contact」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

複数指定した固定ページのいずれかに当てはまる場合

※ID指定の場合は、シングルクォーテーションがなくてもOK

<?php if(is_page(array('5', 'contact'))): ?>
  <!--もし「固定ページ」のIDが「5」、もしくは、指定したスラッグが「contact」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

固定ページ、投稿ページ、カスタム投稿ページ、添付ファイルページに関連する条件分岐

<?php if(is_singular()): ?>
  <!--もし「固定ページ」、「投稿ページ」、「カスタム投稿ページ」、または「添付ファイルページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

アーカイブページに関連する条件分岐

アーカイブページに当てはまる場合

<?php if(is_archive()): ?>
  <!--もし「アーカイブページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

アーカイブ1ページ目のみに当てはまる場合

<?php if(is_archive() && !is_paged()): ?>
  <!--もし「アーカイブページ」の1ページ目に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

archive.phpの中で、日付・カテゴリー・タグアーカイブページの内容を分岐して表示する場合

<?php if(is_date()): ?>
  <!--もし「日付アーカイブページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php elseif(is_category()): ?>
  <!--もし「カテゴリーアーカイブページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php elseif(is_tag()): ?>
  <!--もし「タグアーカイブページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php else:?>
  <!--それ以外の場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

カテゴリーページに関連する条件分岐

カテゴリーページに当てはまる場合

<?php if(is_category()): ?>
  <!--もし「カテゴリーページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

指定したカテゴリーページに当てはまる場合(カテゴリーID指定)

※ID指定の場合は、シングルクォーテーションがなくてもOK

<?php if(is_category('2')): ?>
  <!--もし「カテゴリー」のIDが「2」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

指定したカテゴリーページに当てはまる場合(スラッグ指定)

<?php if(is_category('art')): ?>
  <!--もし「カテゴリー」のカテゴリー名が「art」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

指定したカテゴリーページに当てはまる場合(カテゴリー名指定)

<?php if(is_category('アート')): ?>
  <!--もし「カテゴリー名」が「アート」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

複数指定したカテゴリーのいずれかに当てはまる場合

※ID指定の場合は、シングルクォーテーションがなくてもOK

<?php if(is_category(array('2', 'art'))): ?>
  <!--もし「カテゴリー」のIDが「2」、もしくはスラッグ名が「art」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

カテゴリーページの1ページ目のみに当てはまる場合

<?php if(is_category() && !is_paged()): ?>
  <!--もし「カテゴリーページ」の1ページ目に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

指定したカテゴリーに属する場合(アーカイブ・個別記事)

※ID指定の場合は、シングルクォーテーションがなくてもOK

<?php if(in_category('5')): ?>
  <!--もし「カテゴリー」のIDが「5」に属する場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

複数指定したカテゴリーのいずれかに属する場合(アーカイブ・個別記事)

※ID指定の場合は、シングルクォーテーションがなくてもOK

<?php if(in_category(array('2', '5'))): ?>
  <!--もし「カテゴリー」のIDが「2」、もしくは「5」に属する場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

日付アーカイブページに関連する条件分岐

日付アーカイブページに当てはまる場合

<?php if(is_date()): ?>
  <!--もし「日付アーカイブページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

年別アーカイブページに当てはまる場合

<?php if(is_year()): ?>
  <!--もし「年別アーカイブページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

月別アーカイブページに当てはまる場合

<?php if(is_month()): ?>
  <!--もし「月別アーカイブページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

日別アーカイブページに当てはまる場合

<?php if(is_day()): ?>
  <!--もし「日別アーカイブページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

タグアーカイブページに関連する条件分岐

タグアーカイブページに当てはまる場合

<?php if(is_tag()): ?>
  <!--もし「タグアーカイブページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

指定したタグアーカイブページに当てはまる場合(タグID指定)

※ID指定の場合は、シングルクォーテーションがなくてもOK

<?php if(is_tag('5')): ?>
  <!--もし「タグ」のIDが「5」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

指定したタグアーカイブページに当てはまる場合(スラッグ指定)

<?php if(is_tag('hiroshima')): ?>
  <!--もし「タグ」のスラッグ名が「hiroshima」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

指定したタグアーカイブページに当てはまる場合(タグ名指定)

<?php if(is_tag('広島')): ?>
  <!--もし「タグ名」が「広島」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

複数指定したタグのいずれかに当てはまる場合

※ID指定の場合は、シングルクォーテーションがなくてもOK

<?php if(is_tag(array('5', 'hiroshima'))): ?>
  <!--もし「タグ」のIDが「5」、もしくは「hiroshima」に属する場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

カスタム投稿ページ関連の条件分岐

指定したカスタム投稿タイプの個別ページに当てはまる場合

<?php if(is_singular('news')): ?>
  <!--もし「カスタム投稿」の投稿タイプ名が「news」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

複数指定したカスタム投稿タイプのいずれかの個別ページに当てはまる場合

<?php if(is_singular(array('news', 'works'))): ?>
  <!--もし「カスタム投稿」の投稿タイプ名が「news」、もしくは「works」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

指定したカスタムタクソノミーのタームに属する場合

<?php if(has_term('art', 'workscat')): ?>
  <!--もし「カスタムタクソノミー」のタクソノミー名が「workscat」で「art」というタームに属する場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

カスタム投稿アーカイブページ関連の条件分岐

カスタム投稿のアーカイブページに当てはまる場合

<?php if(is_post_type_archive()): ?>
  <!--もし「カスタム投稿のアーカイブページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

指定したカスタム投稿タイプのアーカイブページに当てはまる場合

<?php if(is_post_type_archive('news')): ?>
  <!--もし「カスタム投稿」の投稿タイプ名が「news」に当てはまるアーカイブページの場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

複数指定したカスタム投稿タイプのいずれかのアーカイブページに当てはまる場合

<?php if(is_post_type_archive(array('news', 'works'))): ?>
  <!--もし「カスタム投稿」の投稿タイプ名が「news」、もしくは「works」に当てはまるアーカイブページの場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

カスタムタクソノミー関連の条件分岐

カスタムタクソノミーのアーカイブページに当てはまる場合

<?php if(is_tax()): ?>
  <!--もし「カスタムタクソノミーのアーカイブページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

指定したカスタムタクソノミーのアーカイブページに当てはまる場合

<?php if(is_tax('workscat')): ?>
  <!--もし「カスタムタクソノミー」のタクソノミー名が「workscat」のアーカイブページに当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

複数指定したカスタムタクソノミーのいずれかのアーカイブページに当てはまる場合

<?php if(is_tax(array('workscat', 'diarycat'))): ?>
  <!--もし「カスタムタクソノミー」のタクソノミー名が「workscat」、もしくは「diarycat」のアーカイブページに当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

投稿者ページ関連の条件分岐

投稿者ページに当てはまる場合

<?php if(is_author()): ?>
  <!--もし「投稿者ページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

指定した投稿者ページに当てはまる場合(投稿者ID指定)

※ID指定の場合は、シングルクォーテーションがなくてもOK

<?php if(is_author('2')): ?>
  <!--もし「投稿者」のIDが「2」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

指定した投稿者ページに当てはまる場合(ニックネーム指定)

<?php if(is_author('kubota')): ?>
  <!--もし「投稿者」のニックネームが「kubota」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

複数指定した投稿者ページのいずれかに当てはまる場合

※ID指定の場合は、シングルクォーテーションがなくてもOK

<?php if(is_author(array('2', 'kubota'))): ?>
  <!--もし「記事の投稿者」のIDが「2」、もしくはニックネームが「kubota」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

その他の条件分岐

検索結果ページに当てはまる場合

<?php if(is_search()): ?>
  <!--もし「検索結果ページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

404ページに当てはまる場合

<?php if(is_404()): ?>
  <!--もし「404ページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

管理画面のログイン有無

<?php if(is_user_logged_in()): ?>
  <!--もし ユーザーがWordPressの管理画面にログインしている場合は、コンテンツを表示 or 処理-->
<?php else: ?>
  <!--管理画面にログインしていない場合は、コンテンツを表示 or 処理-->
<?php endif; ?>

モバイルデバイス(スマホやタブレット)に当てはまる場合

<?php if(wp_is_mobile()): ?>
  <!--もしモバイルデバイス(スマホやタブレット)に当てはまる場合は、コンテンツを表示 or 処理-->
<?php else: ?>
  <!--それ以外(PCに当てはまる場合)は、コンテンツを表示 or 処理-->
<?php endif; ?>

種類が違う複数のページをまとめる条件分岐

<?php if(is_page('contact') || is_page('privacy') || is_single() || is_404()): ?>
  <!--もし「固定ページ」のcontactかprivacy、「個別ページ」、「404ページ」のいずれかに当てはまる場合は、コンテンツを表示 or 処理-->
<?php elseif(is_front_page()): ?>
  <!--もし「フロントページ」に当てはまる場合は、コンテンツを表示 or 処理-->
<?php else: ?>
  <!--それ以外は、コンテンツを表示 or 処理-->
<?php endif; ?>

最低限覚えておきたい
WordPressのコード