WordPressのis_single()とは?基本の使い方と具体例を解説
Contents
はじめに
WordPressで特定の投稿ページだけに処理を加えたいとき、「is_single()」という関数が役立ちます。しかし、初心者の方にとっては「何に使えるの?」「どう書けばいいの?」といった疑問が浮かぶかもしれません。この記事では、is_single()の基本的な使い方から具体的な活用例まで、わかりやすく解説します。
is_single()とは?
is_single()
は、現在表示されているページが「単一投稿ページ(single post)」かどうかを判定するWordPressの条件分岐タグです。
以下の図のように、単一投稿ページだけで true
を返し、それ以外のページでは false
になります。

図:is_single() が true になるのは「投稿ページ」のみ
つまり、投稿ページ(投稿タイプ:post)の詳細ページを表示しているときに true
を返し、それ以外のアーカイブページや固定ページでは false
になります。
もっと詳しく知りたい方は、WordPress公式ドキュメントをご覧ください。
基本的な使い方
if ( is_single() ) {
// 単一投稿ページで実行したい処理
echo 'これは投稿の詳細ページです';
}
特定の投稿だけを指定する方法
特定の投稿だけに条件を適用したい場合は、投稿ID・スラッグ・タイトルのいずれかを指定できます。
// 投稿IDを指定
if ( is_single(42) ) {
echo '投稿ID 42 のページです';
}
// スラッグを指定
if ( is_single('my-post') ) {
echo 'スラッグが my-post のページです';
}
// タイトルを指定
if ( is_single('こんにちは世界') ) {
echo '「こんにちは世界」の投稿ページです';
}
よくある活用例
1. 投稿ページだけでCSSやJSを読み込む
if ( is_single() ) {
wp_enqueue_style('single-style', get_template_directory_uri() . '/css/single.css');
}
2. 特定の投稿だけに広告を表示する
if ( is_single('campaign') ) {
echo '<div class="ad">キャンペーン中!</div>';
}
3. テーマテンプレートの条件分岐で表示を変える
if ( is_single() ) {
get_template_part('template-parts/content', 'single');
} else {
get_template_part('template-parts/content', 'archive');
}
is_single()とis_singular()の違い
is_single()
は「投稿(post)」のみを対象とします。- 一方、
is_singular()
は投稿(post)、固定ページ(page)、カスタム投稿タイプ(custom post type)など、すべての単一ページを対象にできます。
// すべての単一ページに適用したい場合
if ( is_singular() ) {
echo 'これは単一ページです(投稿・固定ページ含む)';
}
注意点・よくあるミス
is_single()
は一覧ページ(アーカイブやカテゴリーページなど)ではfalse
を返します。- 条件分岐を使用する際は、フック(例:
wp_enqueue_scripts
)のタイミングにも注意しましょう。
まとめ
is_single()
は、WordPressで特定の投稿ページだけに処理を加えたいときにとても便利な関数です。基本を理解し、目的に応じてIDやスラッグを使い分けることで、より柔軟なテーマカスタマイズが可能になります。
投稿ページにだけ特別なレイアウトや広告を表示したいとき、ぜひ活用してみてください。
よくある質問(Q&A)
Q. is_single() はカテゴリーページでも true になりますか?
A. なりません。カテゴリーページはアーカイブページなので is_single()
は false
を返します。
Q. カスタム投稿タイプにも使えますか?
A. 投稿タイプが「post」の場合はOKですが、カスタム投稿タイプも対象にしたい場合は is_singular()
を使うのがおすすめです。