カスタムテーマ制作中に 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