is_single() の使い方|説明・引数・注意点

説明

is_single() は、個別投稿ページ(添付ファイル・固定ページ以外)を表示しているかを判定する関数です。

基本構文

is_single( int|string|int[]|string[] $post = '' ): bool

引数

  • $post:投稿ID・タイトル・スラッグ、またはそれらの配列(省略可)

戻り値

条件に当てはまれば true、そうでなければ false。

使い方(サンプル)

if ( is_single() ) {
	// 投稿の個別ページ
}
if ( is_single( 123 ) ) {
	// ID が 123 の投稿
}

注意点

  • カスタム投稿の個別ページでも true になります。投稿タイプを限定するなら is_singular() や get_post_type() と併用します。
  • 固定ページは対象外です。固定ページには is_page() を使います。
  • パーマリンクに日付を含めている設定などで、判定が想定通りにならない場合があります。

実務での使いどころ

  • 個別の投稿ページだけで、関連記事やSNSボタンを出すとき。
  • 特定の投稿(ID・スラッグ)のときだけ、処理を変えるとき。

よくあるミスと対処

  • 固定ページには使えない。固定ページは is_page() を使う。
  • 投稿タイプを指定するつもりで、is_single( 'news' ) と書いている。引数は投稿ID・タイトル・スラッグで、投稿タイプではない。投稿タイプの判定は is_singular() を使う。

NG例

if ( is_single( 'news' ) ) {
	// お知らせの個別ページのつもり('news' は、スラッグとして扱われる)
}

OK例

if ( is_singular( 'news' ) ) {
	// お知らせの個別ページ
}

使い分け早見表

関数 当てはまるページ
is_single() 投稿・カスタム投稿の個別ページ(固定ページは含まない)
is_page() 固定ページ
is_singular() 投稿・固定ページ・カスタム投稿など、すべての個別ページ

関連項目

is_singular()、is_page()、is_attachment()

公式リファレンス:is_single() | Function | WordPress Developer Resources

コメント

タイトルとURLをコピーしました