WordPressでのカスタム投稿タイプ利用時のタクソノミー条件分岐タグ「is_object_in_term」


こんにちは。株式会社コミュニティコム代表取締役の星野邦敏です。

WordPressでは、バージョン3系以降、「カスタム投稿タイプ」という「投稿」や「固定ページ」とは異なる投稿箇所を、functions.phpに記載することで増やすことが可能になりました。

また、「カスタムタクソノミー(カスタム分類)」という「カテゴリー」や「タグ」とは異なる分類方法も、functions.phpに記載することで増やすことが可能になりました。

さて、その時に、例えば、カスタム投稿タイプで作られた記事ページ内で、特定のカスタムタクソノミー(カスタム分類)にチェックが入っている時だけ表示したい文章や画像がある場合もあると思います。

通常、投稿記事内で、特定のカテゴリーにチェックが入っている時だけ表示する場合には、
in_category
という条件分岐タグを使います。
テンプレートタグ/in category – WordPress Codex 日本語版

具体的には、WordPressテーマのsingle.phpなどに

<?php if ( in_category(3) ): ?>
ここにカテゴリー特有のPHP/HTMLを書く
<?php endif; ?>

と書くと思います。

これと同じように、カスタム投稿タイプで作られた記事ページ内で、特定のカスタムタクソノミー(カスタム分類)にチェックが入っている時だけ表示したい文章や画像がある場合には、is_object_in_termという条件分岐タグを使って、分岐します。

is_object_in_termで検索しても、あまり日本語の情報が出てこないですし、現状、Codexも英語版しか記載が無いように思います。
Function Reference/is object in term « WordPress Codex

is_object_in_term( $post_id, $taxonomy, $terms )
引数1、$post_id:投稿ID
引数2、$taxonomy:タクソノミー名
引数3、$term:タームID、名前、スラッグもしくはArray

具体的には、

<?php if ( is_object_in_term($post->ID, 'food','pan') ): ?>
ここにタクソノミー特有のPHP/HTMLを書く
<?php endif; ?>

というように書くとカスタム投稿タイプ内で条件分岐ができます。

上記の例ですと、foodというタクソノミー名で、panというスラッグ名を用意している場合にのみ、特定のPHPやHTMLが表示されるよう、条件分岐されます。

カスタム投稿タイプやカスタムタクソノミーが作れることで、管理画面上で、投稿箇所を柔軟に分けることができました。
それによって、運用面のアイデアは増えましたが、一方で、運用ルールのようなものが必要だったり、WordPressテーマ内での記載も多様化されたかもしれないですね。

WordPressでのカスタム投稿タイプ利用時のタクソノミー条件分岐として、is_object_in_termという条件分岐タグがあることも、カスタム投稿タイプやカスタムタクソノミー(カスタム分類)を使う際には思い出すと良いかもしれません。

なお、上記のis_object_in_termについては、自分が数ヶ月に一度、講師をしているallWebクリエイター塾さんにいらっしゃっていた長橋さんという受講者の方からの質問で気付きを得ました。

ありがとうございます!


"WordPressでのカスタム投稿タイプ利用時のタクソノミー条件分岐タグ「is_object_in_term」" に20件のコメント

  1. WordPressでのカスタム投稿タイプ利用時のタクソノミー条件分岐タグ「is_object_in_term」 | 株式会社コミュニティコム http://t.co/kwAevqJQ

  2. WordPressでのカスタム投稿タイプ利用時のタクソノミー条件分岐タグ「is_object_in_term」 | 株式会社コミュニティコム http://t.co/kwAevqJQ

  3. ブログの更新を確認しました RT @khoshino WordPressでのカスタム投稿タイプ利用時のタクソノミー条件分岐タグ「is_object_in_term」 | 株式会社コミュニティコム http://t.co/sev8Iph2

  4. 確認されたことを確認しました。 RT @horike37 ブログの更新を確認しました RT WordPressでのカスタム投稿タイプ利用時のタクソノミー条件分岐タグ「is_object_in_term」 | 株式会社コミュニティコム http://t.co/kwAevqJQ

  5. ピンバック: 【WordPress】カスタム分類の条件分岐方法 | おれの踏み外し気味のあれ

  6. WordPressでのカスタム投稿タイプ利用時のタクソノミー条件分岐タグ「is_object_in_term」 | 株式会社コミュニティコム http://www.communitycom.jp/2012

  7. WordPressでのカスタム投稿タイプ利用時のタクソノミー条件分岐タグ「is_object_in_term」 | 株式会社コミュニティコム http://t.co/3oGP49BG

  8. WordPressでのカスタム投稿タイプ利用時のタクソノミー条件分岐タグ「is_object_in_term」 | 株式会社コミュニティコム http://t.co/3oGP49BG

  9. WordPressでのカスタム投稿タイプ利用時のタクソノミー条件分岐タグ「is_object_in_term」 | 株式会社コミュニティコム http://t.co/3oGP49BG

  10. WordPressでのカスタム投稿タイプ利用時のタクソノミー条件分岐タグ「is_object_in_term」 | 株式会社コミュニティコム http://t.co/DiXcrmpC ←やった、これでできるかも。あとで試す。 (。´Д⊂)

  11. “WordPressでのカスタム投稿タイプ利用時のタクソノミー条件分岐タグ「is_object_in_term」 | 株式会社コミュニティコム” http://t.co/HuLO91v5

  12. “WordPressでのカスタム投稿タイプ利用時のタクソノミー条件分岐タグ「is_object_in_term」 | 株式会社コミュニティコム” http://t.co/HuLO91v5

  13. あー助かりました。 / WordPressでのカスタム投稿タイプ利用時のタクソノミー条件分岐タグ「is_object_in_term」 | 株式会社コミュニティコム http://t.co/INBfyN1tdC

  14. RT @ryo_dg: あー助かりました。 / WordPressでのカスタム投稿タイプ利用時のタクソノミー条件分岐タグ「is_object_in_term」 | 株式会社コミュニティコム http://t.co/INBfyN1tdC

  15. RT @ryo_dg: あー助かりました。 / WordPressでのカスタム投稿タイプ利用時のタクソノミー条件分岐タグ「is_object_in_term」 | 株式会社コミュニティコム http://t.co/INBfyN1tdC

  16. WordPressでのカスタム投稿タイプ利用時のタクソノミー条件分岐タグ「is_object_in_term」 http://t.co/yulGCwtWR1

  17. RT @mirach777: WordPressでのカスタム投稿タイプ利用時のタクソノミー条件分岐タグ「is_object_in_term」 http://t.co/yulGCwtWR1

  18. カスタムタクソノミーの条件分岐

  19. カスタム分類の条件分岐の関数

  20. タクソノミーさんとようやく仲良くなってきました。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA