is_single()とis_page()の違いをやさしく解説【WordPress条件分岐】

WordPressのis_single()とis_page()の違いを初心者向けに解説するアイキャッチ画像
WordPressの条件分岐タグ「is_single()」と「is_page()」の違いをやさしく解説するためのアイキャッチ画像。投稿ページと固定ページの違いを図でわかりやすくまとめたビジュアル。

WordPressのテンプレートタグの中でも、よく使われるのが is_single()is_page()
どちらも「特定のページを判定」するための関数ですが、実際には役割が明確に異なります。

この記事では、その違いを初心者にも分かりやすく解説します。

結論:違いをひとことで言うと

関数判定対象主な用途
is_single()投稿(post)ブログ記事ページの判定
is_page()固定ページ(page)プライバシーポリシーやお問い合わせなどの固定ページ判定

つまり、

  • is_single() → 投稿記事の個別ページ
  • is_page() → 固定ページの個別ページ

をそれぞれ判定する関数です。

1. is_single()とは?

基本構文

if ( is_single() ) {
  // 投稿ページ(single.php)での処理
}

使い方の例

if ( is_single('10') ) {
  echo 'この記事はIDが10です。';
}

if ( is_single('about-wordpress') ) {
  echo 'この記事のスラッグは「about-wordpress」です。';
}

if ( is_single(['10', '20', '30']) ) {
  echo 'この記事はID10, 20, 30のいずれかです。';
}

主な用途

  • 特定の投稿だけデザインを変える
  • 特定の記事だけスクリプトを読み込む
  • 投稿ページ全体で共通処理を行う

👉 関連記事:WordPressのis_single()とは?基本の使い方と具体例を解説

2. is_page()とは?

基本構文

if ( is_page() ) {
  // 固定ページ(page.php)での処理
}

使い方の例

if ( is_page('contact') ) {
  echo 'お問い合わせページです。';
}

if ( is_page(5) ) {
  echo 'このページはID5の固定ページです。';
}

if ( is_page(['about', 'privacy']) ) {
  echo 'このページは「about」または「privacy」です。';
}

主な用途

  • お問い合わせページだけスタイルを変える
  • サービスページ専用のスクリプトを読み込む
  • 特定の固定ページでウィジェットを非表示にする

👉 関連記事:WordPressのis_page()とは?使い方と具体例を解説

3. 2つの違いをコードで比較

if ( is_single() ) {
  echo '投稿ページです。';
} elseif ( is_page() ) {
  echo '固定ページです。';
} else {
  echo 'それ以外のページです。';
}

このように、
is_single()is_page() はそれぞれ異なる投稿タイプを判定します。

4. よくある勘違い

❌ 「どちらも個別ページだから同じでは?」

→ いいえ、違います。
WordPressでは「投稿(post)」と「固定ページ(page)」はまったく別の投稿タイプです。

  • 投稿:ブログ記事のように時系列で並ぶ
  • 固定ページ:会社概要や問い合わせなどの独立したページ

👉 関連記事:home.phpとfront-page.phpの違いをやさしく解説

5. さらに応用:カスタム投稿タイプも判定できる

is_singular() を使うと、投稿タイプに関係なく「個別ページ」を判定できます。

if ( is_singular('news') ) {
  echo 'これはカスタム投稿タイプ「news」の記事です。';
}

👉 関連記事:is_singular()の使い方とis_single()との違いを徹底比較

まとめ

関数名判定対象
is_single()投稿(post)ブログ記事ページ
is_page()固定ページ(page)お問い合わせや会社概要など
is_singular()すべての個別ページ投稿・固定ページ・カスタム投稿すべて

関連記事

まとめ:用途で使い分けよう

  • ブログ記事 → is_single()
  • 固定ページ → is_page()
  • すべての個別ページ → is_singular()

この3つの関数を正しく使い分けることで、テンプレートを柔軟にカスタマイズできます。