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の条件分岐は必須と言っていいほど使用しますので、細かな違いも含めて覚えておきましょう。