WordPressの条件分岐の関数として「is_single()」と「is_singular()」があります。
どちらも、投稿ページだった場合を分岐できますが、それぞれの使い分けで迷うことがあるので、実際の機能について解説します。

「is_single()」と「is_singular()」の基本的な使い方

基本的な使い方は以下のとおりです。

<?php
	if( is_single() ){
		// 投稿ページだった時の処理
	}

	if( is_singular('blog') ){
		// カスタム投稿タイプ「blog」の投稿ページだったときの処理
	}
?>

is_single()」は純粋に投稿ページかどうかを判別し、「is_singular()」はカスタム投稿タイプの投稿ページを含めて判別できます。これにより、複数の投稿タイプを対象にすることができます。

「is_single()」の特徴

  • 投稿ページの場合に true を返します。
  • 引数としてページID、スラッグ、タイトルを指定でき、それに一致する場合に true を返します。

「is_singular()」の特徴

  • 投稿タイプを指定して、特定の投稿ページを判別します。
    引数に投稿タイプ(例:'post', 'page', 'custom-post-type')を指定します。
  • 引数を指定しない場合、is_single()、is_page()、is_attachment() のいずれかが true であれば true を返します。

引数の指定

is_single()、is_singular()それぞれの引数に複数の値を指定する場合は、array()で配列にすることで指定可能です。

is_singular( array('blog','news') )

使い分けのポイント

  • 通常の投稿ページを判別したい場合は is_single() を使用します。
  • カスタム投稿タイプを含む複数の投稿タイプを判別する場合は is_singular() を使用します。

まとめ

以上がis_single()とis_singular()の違いとなります。

is_singular()はカスタム投稿を使用しているケースで多く使用をすることになります。
WordPressの条件分岐は必須と言っていいほど使用しますので、細かな違いも含めて覚えておきましょう。