WordPressで特定のカスタム投稿タイプを識別する方法

Blog Admin
Blog Admin

複数のカスタム投稿タイプがあるサイトにて、特定のカスタム投稿の場合にdescriptionの書き方を変えたいということがありました。

WordPress

WordPress
特定のカスタム投稿タイプを識別

とあるカスタム投稿タイプのときは、descriptionをカスタムフィールドから取ってきて、そうでない場合には抜粋から取ってきたいとかいったことでした。
他にもタイトルやらをいっしょに指定するわけですが。

カスタム投稿の識別は「is_singular」

特定のカスタム投稿タイプかどうかを判定したいわけです。
if文の条件として使いますよね。

関数の「is_singular」です。

引数としてカスタム投稿タイプの名前(post_type)を設定すれば、そのカスタム投稿タイプの場合にTrue、それ以外の場合にFalseを返します。
条件分岐に使えます。

カスタム投稿タイプの名称はスラッグになっているやつ

PHP

is_singlarの引数にカスタム投稿タイプの名称を指定すれば、表示しているページが特定のカスタム投稿タイプかどうかを判定できます。
ここでいう「カスタム投稿タイプの名称」とは、post_typeのことで、つまりはスラッグと同じです。

カスタム投稿タイプの登録時に指定した第1引数です。
もう少し詳しく書くと、register_post_type$post_typeです。

たとえば以下です。

register_post_type(
    'hoge',
    array(
        'label' => ...(略)

上記のように設定した場合は、以下のように識別します。

if ( is_singular('hoge') ) { ...(略)

上記の判定だと、「hoge」という名称のカスタム投稿タイプの場合に、if文のTrueの方に入ります。

「is_single」との使い分け

WordPress

すごく似ているので混乱しがちなのですが、is_single特定のシングルページかどうかを判定するときに使います。
ざっくりとは「投稿」かどうかの判定です。
引数指定なしの場合は、すべての投稿ページでTrueです。ただし、添付ファイルと固定ページが例外でFalseです。

引数を指定すれば、特定のページを識別できます。
指定方法は、ID、スラッグ、タイトル文字列で、配列も可能です。

アーカイブページかどうかは「is_post_type_archive」

今回はアーカイブページではないので採用しませんでした。
ちなみに、「アーカイブページ」とは一覧ページのことです。そのカスタム投稿タイプの投稿を一覧表示するわけですね。初期設定にてアーカイブを有効化していれば、アーカイブページが自動で作成されます。

この投稿を書いたのは・・・
Blog Admin

ガジェットが大好きで、ほぼ毎月何かしら調達しております。
無駄遣い扱いされたくないのと、何かの役に立つかと思い、記録を書くことにしたのでした。

お出かけのときには、スマホを複数台とタブレットとパソコンを持ち歩きます。
両手首にはスマートウォッチです。
こんなスタイルで生活している中での備忘録を書いています。

「Blog Admin」をフォローしてみる
ブログ関連
「Blog Admin」をフォローしてみる

ご意見やご感想などお聞かせください! コメント機能です。

タイトルとURLをコピーしました