wordpress

WordPress

【WordPress】Advanced Custom Fieldsのタクソノミーを出力したい

更新日:

WordPressでプラグイン「Advanced Custom Fields」を使用した際の、タクソノミーの出力方法についての備忘録です。

やりたいこと:カスタム投稿、タクソノミーの表示

  1. プラグインを使わずに、カスタム投稿タイプ、カスタムタクソノミーを追加。
  2. プラグイン「Advanced Custom Fields」でカスタムフィールドを作成。
  3. 1と2を紐付け、カスタムフィールドから入力→投稿した内容をサイトに表示させる。

つまづいた点:タクソノミーの返り値がタームID

Advanced Custom Fieldsで、フィールドタイプが「テキスト」「数値」「テキストエリア」のものは、ソースに<?php the_field(‘フィールド名’); ?>を追加することで表示されたが、「タクソノミー」については期待した値が表示されなかった(公式サイト通りに記述しても、なぜか上手く表示されず)。

原因:タームIDが取得されていた。

※返り値にタームIDを選択していたため(デフォルト値)、当然といえば当然だったのですが。。。

やったこと:タームオブジェクトから名前を取得

今回やってみた内容について、始めから順に記述していきます。

カスタム投稿タイプ「書籍」の作成

function.phpに下記のソースを追加します。

「書籍カテゴリー」の追加

管理画面にカスタム投稿タイプ「書籍」が追加されたので、書籍>書籍カテゴリーより、新規カテゴリーを追加します。
試しに、「専門書」「小説」「雑誌」の3つを追加してみました。

Advanced Custom Fieldsの設定

1.プラグイン「Advanced Custom Fields」でフィールドグループ「書籍」を作成します。

2.下記のフィールドを追加します。

フィールドラベル フィールド名 フィールドタイプ
著者 b_author テキスト
書籍カテゴリー b_category タクソノミー
価格 b_price 数値
本の概要 b_about テキストエリア

フィールド名「書籍カテゴリー」の設定内容

  • フィールドラベル:書籍カテゴリー
  • フィールド名:書籍カテゴリー
  • フィールドタイプ:タクソノミー
  • フィールド記入のヒント:空白
  • 必須か?:いいえ
  • タクソノミー:book_cat ※作成したカスタム投稿タイプ
  • フィールドタイプ:セレクトボックス
  • 無を許可するか?:いいえ
  • タームの読み込み/保存:チェックあり ※チェックを入れないと、管理画面→書籍→書籍カテゴリーのカウントが更新されない
  • 返り値:タームID ※追記あり(アーカイブページの表示 〜返り値がTerm Objectの場合〜
  • 条件判定:いいえ

カスタム投稿タイプ「書籍」の投稿

管理画面の書籍>新規追加より、新しい記事を投稿します。

  • タイトル:WordPress入門
  • 書籍名:W.Press
  • 価格:3000
  • 本の概要:WordPressの基本的な内容について。
  • 書籍カテゴリー:「専門書」にチェック

アーカイブページの表示 〜返り値がタームIDの場合〜

カスタム投稿タイプ書籍用に、archive-book.phpを作成します。

解説

16行目で、選択したタームのタームIDが取得されるので、変数$term_idに格納します。
17行目で、ターム ID を指定してタームの全データをデータベースから取得し、変数$termに格納します。
18行目で、タームの名前を参照し、出力します。

アーカイブページの表示 〜返り値がTerm Objectの場合〜

追記:こちらの方がよりシンプルで、公式サイトと同様の記述で表示出来ました。

フィールド名「書籍カテゴリー」の設定内容の返り値を下記に設定します(他は変更なし)。

  • 返り値:Term Object

アーカイブページの表示 〜返り値がタームIDの場合〜の14〜20行目を下記に置き換えます。

解説

16行目で、タームオブジェクトが取得されるので、変数$termに格納します。
18行目で、タームの名前を参照し、出力します。

結果:タクソノミーの表示成功

期待通りの値(専門書)が表示されました!

結果

一度理解すると難しい内容ではありませんでしたが、だいぶハマってしまいました。
最初から、返り値をTerm Objectに設定しておくべきでした
以上です。

続き→【WordPress】管理画面のカスタム投稿タイプ投稿一覧のカスタマイズ

広告

広告

-WordPress
-, ,

Copyright© おうちIT , 2018 All Rights Reserved Powered by AFFINGER4.