WPで表示中の記事がカスタム投稿タイプかどうか判別する

判定方法に悩んでいたものの、視点を変えればとても簡単なことでしたのでメモとして。

実現したいこと

  • WordPressでカスタム投稿タイプを設定
  • 表示中の記事がカスタム投稿タイプか否かを判定
  • カスタム投稿タイプ名を記述するようなハードコーディングは避けたい

検索などはカスタム投稿タイプ名を直書きしての分岐しか見つからなかったので、試作してみました。

サンプルコード


function is_custom_post_type() {
  $post_type = get_post_type();
  return is_single() && $post_type !== 'post' && $post_type !== 'attachment';
}
// $post_type !== 'attachment' は is_attachment()を用いても可

単純な話ですが、is_single()で「通常の投稿ページ」「カスタム投稿タイプのページ」「添付ファイルページ」のいずれかを判定できるので、あとはget_post_type()の値がpostattachment以外であるとわかれば判定可能です。

なおカスタム投稿タイプであれば、get_post_type()の出力値はpostではなく設定した投稿タイプ名が出力されます。

結び

当初は検索頼りで悩んだのですが、手元の情報を組み合わせれば案外簡単に作れました。

実際のところこの判定が有益な場面はかなり少なそうですが、必要になる場面もあるかなと思います。

1人がこの記事を評価

役に立ったよという方は上の「記事を評価する」ボタンをクリックしてもらえると嬉しいです。

連投防止のためにCookie使用。SNSへの投稿など他サービスとの連動は一切ありません。

コメント欄