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

WordPressのテンプレートタグの中でも、よく使われるのが is_single() と is_page()。
どちらも「特定のページを判定」するための関数ですが、実際には役割が明確に異なります。
この記事では、その違いを初心者にも分かりやすく解説します。
Contents
結論:違いをひとことで言うと
| 関数 | 判定対象 | 主な用途 |
|---|---|---|
| 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つの関数を正しく使い分けることで、テンプレートを柔軟にカスタマイズできます。

