WordPressのis_single()とは?基本の使い方と具体例をわかりやすく解説

WordPressのis_single()の使い方と具体例を解説するイメージ画像
is_single()の基本構文や使い方、is_pageとの違いを初心者にもわかりやすく図解で解説。

1. is_single()とは?

is_single() は、投稿ページ(投稿タイプ:post)の個別ページを判定するための条件分岐タグです。
つまり、ブログ記事1件の詳細ページを開いているときに「true」を返します。

if ( is_single() ) {
  // 投稿ページのときに実行したい処理
}

🔍 主な用途

  • 投稿ページだけに特定のデザインを適用する
  • 投稿ページでスクリプトや広告を表示する
  • 投稿IDやスラッグを指定して個別判定する

2. is_single()が使われるタイミング

WordPressのテンプレート階層では、
single.php が読み込まれる際にこの関数が「true」を返します。

ページの種類is_single()の結果
投稿ページ(post)✅ true
固定ページ(page)❌ false
カスタム投稿タイプ(例:news)❌ false(is_singularで判定)

3. 基本的な書き方

例1:単純な条件分岐

<?php if ( is_single() ) : ?>
  <div class="ad-banner">この記事限定の広告を表示</div>
<?php endif; ?>

例2:投稿IDを指定

<?php if ( is_single(123) ) : ?>
  <p>この記事だけに特別なメッセージを表示!</p>
<?php endif; ?>

例3:スラッグで指定

<?php if ( is_single('my-first-post') ) : ?>
  <p>「my-first-post」だけに表示される内容です。</p>
<?php endif; ?>

4. よくある具体例

🔸 投稿ページだけに特定CSSを読み込む

<?php
if ( is_single() ) {
  wp_enqueue_style( 'single-style', get_template_directory_uri() . '/css/single.css' );
}
?>

🔸 投稿ページでだけ広告コードを挿入

<?php if ( is_single() ) : ?>
  <div class="google-adsense">
    <!-- 広告コードをここに挿入 -->
  </div>
<?php endif; ?>

🔸 特定記事だけでスクリプトを読み込む

<?php
if ( is_single(array(12, 34, 56)) ) {
  wp_enqueue_script( 'special-js', get_template_directory_uri() . '/js/special.js', array(), null, true );
}
?>

5. is_single() と似た関数の違い

関数名判定対象
is_single()投稿ページ(post)ブログ記事の詳細
is_page()固定ページ(page)会社概要ページなど
is_singular()すべての「個別ページ」投稿・固定・カスタム投稿

💬 参考記事

6. 実践:複数条件を組み合わせる方法

🔸 投稿IDとカテゴリを組み合わせる

if ( is_single() && in_category('news') ) {
  echo 'ニュースカテゴリの記事ページです';
}

🔸 投稿ページまたは特定固定ページに適用

if ( is_single() || is_page('contact') ) {
  echo '投稿かお問い合わせページです';
}

7. よくある失敗パターンと注意点

よくあるミス原因解決策
固定ページでis_single()を使って反応しない固定ページは対象外is_page()を使用する
カスタム投稿でfalseになるpostタイプ限定だからis_singular('news')を使用する
ループ外で条件が効かないコンテキストが違うループ内またはテンプレート内で使用

8. まとめ

ポイント内容
関数名is_single()
判定対象投稿ページ(post)
主な使い方投稿ページに限定して処理を行う
注意点固定ページ・カスタム投稿ではfalseになる

9. 関連記事リンク