カスタムテーマ制作中に is_single() と is_singular() の使い所が度々こんがらがるので、きちんと整理してみました。
Contents
is_single() と is_singular() の概要
is_single()
投稿(post)およびカスタム投稿タイプのシングルページか否かを判別する際に使用します。パラメータを追加する際には記事のID、スラッグ、タイトルを指定します。
| 
					 1 2 3 4 5 6 7 8 9 10 11  | 
						<?php if ( is_single() ): ?> 	個別投稿ページに表示する内容 <?php endif; ?> <?php if ( is_single('7') ): ?> 	記事ID「7」の個別投稿ページに表示する内容 <?php endif; ?> <?php if ( is_single( array('7','11','15') ) ): ?> 	複数の記事IDの個別投稿ページに表示する内容 <?php endif; ?>  | 
					
is_singular()
投稿(post)、カスタム投稿タイプ、固定ページ、添付ファイルのシングルページか否かを判別する際に使用します。パラメータ設定時には投稿タイプ(post、カスタム投稿タイプのスラッグ、page、attachment)を指定します。
| 
					 1 2 3 4 5 6 7 8 9 10 11  | 
						<?php if ( is_singular() ): ?> 	投稿(post)およびカスタム投稿タイプのシングルページに表示する内容 <?php endif; ?> <?php if ( is_singular( 'book' ) ): ?> 	カスタム投稿タイプ「book」のシングルページに表示する内容 <?php endif; ?> <?php if ( is_singular( array(‘post’,’book’,’movie’,’music’) ) ): ?> 	投稿(post)および複数のカスタム投稿タイプのシングルページに表示する内容 <?php endif; ?>  | 
					
実際の使用イメージ
実際のテーマ制作で次のように書くケースはあまり無いと思いますが、 is_single() と is_singular() を条件分岐に用いると以下のようになります。
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17  | 
						<?php if ( is_singular() ): ?> 	投稿、カスタム投稿タイプ、固定ページ、添付ファイルのシングルページに表示する内容 	<?php if ( is_single() ): ?> 		投稿およびカスタム投稿タイプのシングルページに表示する内容 		<?php if ( is_singular( ‘post’ ) ): ?> 			投稿(post)のシングルページに表示する内容 		<?php elseif ( is_singular( ‘book’ ) ): ?> 			カスタム投稿タイプ「book」のシングルページに表示する内容 		<?php else: ?> 			その他カスタム投稿タイプのシングルページに表示する内容 		<?php endif; ?> 	<?php elseif ( is_page() ): ?> 		固定ページのシングルページに表示する内容 	<?php elseif ( is_attachment() ): ?> 		添付ファイルのシングルページに表示する内容 	<?php endif; ?> <?php endif; ?>  | 
					
まとめ
総括すると、is_singular() が必要になるのは、カスタム投稿タイプを追加した際に、投稿(post)とカスタム投稿タイプのシングルページの表示を分岐させたいケースと考えて良いかと思います。
| is_singular() | is_single() | is_singular(‘post’) | →投稿(post) | 
| is_singular($post_types) | →カスタム投稿タイプ | ||
| is_page() | →固定ページ | ||
| is_attachment() | →添付ファイル | ||
おすすめ記事
PR