メシのタネ

メシのタネになる、Laravelや設計思想の技術配信サイト


タームとかカスタムタクソノミーとかの扱い

, ,

  1. Webプログラム
  2. タームとかカスタムタクソノミーとかの扱い

wpppppppp

あんまりWordPressやってても本番はカテゴリで管理させてたりする、または保守ごと自分でやってたりするので、カスタム投稿とかタクソノミーとか自分のサイトでしか使った事が無かったんですけど、つい先日ばりばり触る機会があって、色々覚えたのでメモしておこうと思います。まぁ便利だなぁ、なるほどなーと思いました。結局、カスタム投稿とかタクソノミーは、サイト管理させる場合には物凄く良いもんだという結論に落ち着きました。

カスタム投稿で絞込み


カスタム投稿のトップで知ってると良いもんですよね。このコードだと全件表示ですが、’posts_per_page’ とpagedとか弄ればページを分けて使う事ができます。

現在表示ページのタームスラッグを取得


$termと書くだけで取得できます。いや、マジで取得できます。parse_urlとかして~とか考えてたんですけどそんなことしなくても出来ます。

タームスラッグからタームの情報を引っ張る


さっきのはスラッグ名しか取得できないので、$term一覧とかやりたくても、スラッグになっちゃってイラツキます。そんなイラツキを解消してくれるのが、このget_term_by関数です。この関数は第一引数をslugにすることによってタームのスラッグ名から対象のタームオブジェクトを引っ張ってきてくれます。戻り値はオブジェクトなんで、データの引き出しは名前出したいなら、obj->nameとなります。タームIDからも検索できますが、タームスラッグ取るのが割りと手軽にできるのでスラッグから取ってきたほうが使い勝手がいい気がします。

投稿からターム情報の取得(タームIDとか名前とかスラッグとか)


これで出来るのは、「投稿に属するカスタムタクソノミーのタームの取得」です。「タクソノミーに属するターム一覧を取得する」のは、別の手法で実現します。

タクソノミーに属するタームの一覧を取得する


さっき言ってた別の手法を紹介します。あくまで一例なので、もっと良い方法は沢山あると思います。

これで$taxonomysにタクソノミーが持ってるターム情報が入ります。で、これが入れ子になっている場合は、この$taxonomysオブジェクトをループでぶん回して、タームID抽出して、もう一回get_termsを使い、そのパラメータとして、作った配列のparentにタームIDを入れていけば、その子タームを取得する事が出来ます。

というわけで、久々の記事更新でした。


“タームとかカスタムタクソノミーとかの扱い” への1件のコメント

  1. […] 良いもんだという結論に落ち着きました。 $ taxonomy には、タクソノミー名を入れます。 [紹介元] タームとかカスタムタクソノミーとかの扱い | Webプログラミング備忘録 | メシのタネ […]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.