is_singleはカスタム投稿タイプの条件分岐には効かない

WordPressのテンプレートで特定のカスタム投稿タイプのときだけ処理を実行したい場合、is_singleを使った条件分岐を思い付きますがうまく利きません。

次の例では、「おすすめ店」を管理する「shops」というカスタム投稿タイプのときだけ何かを表示するため、is_singleで条件分岐を作成しています。

if (is_single('shops')) {
…何かを表示する…
}

カスタム投稿タイプを条件に分岐させたい場合はis_singleの代わりにis_singularを使います。

if (is_singular('shops')) {
…何かを表示する…
}

つまり、

  • is_singular(投稿タイプ) --- 指定した投稿タイプかどうか調べる
  • is_single(投稿ID) --- 指定した投稿かどうか調べる

のように異なります。

PHPの基礎が身に付いたかチェックするなら

PHP「直す力」養成ドリル
スポンサーリンク