WordPressで特定の投稿タイプが「デフォルトの投稿タイプかカスタム投稿タイプか」判別する方法

例えばですが、投稿タイプを選択する機能を提供しているとします。

ちょうど、僕の作っているプラグインは下のような感じで、投稿タイプを選択できるようになる予定です。

で、この投稿タイプの選択によって処理の内容を変更したいな~と思いました。もうちょっと具体的に書くと、

  • デフォルトで用意されている投稿タイプか
  • カスタム投稿タイプか

いずれかの投稿タイプを選択しているのかを判別したい。

そこで「get_post_type_object」を使うと判別できましたので、似たようなことをされたい場合はご参考ください。

そもそも投稿タイプについて知りたい方は、以下の記事の前半に少し書きましたので、ご参考ください。

デフォルトの投稿タイプかカスタム投稿タイプか判別する

例1

例えば「投稿」の投稿タイプのオブジェクトを取得するには、

$post_obj = get_post_type_object( 'post' );

でOKです。取得した値の中に、

["_builtin"] => bool(true)

が見つかりますので、「true:デフォルトで用意されている投稿タイプ」ということがわかります。

例2

続いて、例えば「ニュース」という投稿タイプがあったとします。

同じように「ニュース」の投稿タイプのオブジェクトを取得します。

$post_obj = get_post_type_object( 'news' );

すると取得した値の中に、

["_builtin"] => bool(false)

が見つかります。「false:カスタム投稿タイプ」ということがわかります。

というように「get_post_type_object」を使うことで判別することができました。

他にもいい方法あるのかな。もしご存知でしたらご教示いただけますと幸いです。

著者:bouya Imamura