Advanced custom Fieldsの条件判定活用方法・フィールドグループ複製より便利
2017/03/11
カテゴリごとにカスタムフィールドを設定する
Advanced custom Fieldsにはフィールドグループの複製がない
WordPressのカスタムフィールドの設定には「Advanced custom Fields」が圧倒的に高機能で使い勝手がよく便利なプラグインです。
「Advanced custom Fields」に関する記事は以下などに書いています。
「Advanced Custom Fields管理画面の全項目完全解説・カスタムフィールド決定版!」
「Advanced Custom Fieldsの全項目解説・公開側表示編集編」
「Advanced Custom Fieldsの関数の全部の使い方を調べてみた」
ですが、Advanced custom Fieldsは一つ不満なポイントがあります。
それは、フィールドグループのコピー、複製する機能が用意されていないことです。
例えば、近所の商店街の情報を提供するサイトを構築するとしましょう。
その場合、まずどの店舗でも共通項目として、店舗名、住所、電話番号、地図の緯度経度などを入力します。
加えて、
「飲食店」というカテゴリの場合は、メニューや予算、席数、予約の可否などを入力します。
「衣料品店」というカテゴリの場合は、ターゲット層や予算、取り扱いブランドなどを入力します。
「病院」というカテゴリの場合は、診療科や取扱保険、予約の可否などを入力します。
といったように、共通項目とカテゴリごとに必要な項目とに分かれます。
この場合、「飲食店」「衣料品店」といったそれぞれの入力項目に合わせてフィールドグループを作ることでしょう。
最初に一つのカテゴリのフィールドグループを作り、それを複製して他のカテゴリのフィールドグループを作りたい、と思うことでしょう。
でも、Advanced custom Fieldsにはフィールドグループを複製する機能がないため、簡単には複製できません。
一応「Advanced Custom Fields管理画面の全項目完全解説・カスタムフィールド決定版!/Export」や「Advanced custom Fieldsのフィールドグループを簡単に複製する方法」で解説していますが、Advanced custom Fieldsの Export機能を使うことでフィールドグループを複製することは可能ですが、心理的にハードルが高い方法です。
そのため、今回この記事では Advanced custom Fieldsに用意されている「条件判定」機能を使って、メンテナンスが必要になった場合のことも考慮した処理を構築しようと思います。
「条件判定」機能とは、「選択肢」の入力フィールド(セレクトボックス、チェックボックス、ラジオボタン、真/偽)に設定された「選択し」の選択されたものを条件として、入力フィールドを表示するか、しないかを設定する項目です。
Advanced Custom Fieldsの条件判定の基本的な?使い方としては「Advanced Custom Fields管理画面の全項目完全解説・カスタムフィールド決定版!/選択肢項目の条件判定」にも解説をしていますので、こちらも参考にしてください。
カテゴリごとの入力フィールドの具体的な手順
- 「選択肢」の入力フィールドにカテゴリを設定
- 必要な入力フィールドを設定
- 条件判定に1で設定したカテゴリを設定
- 設定した入力フィールドの動作確認
という流れになります。
1.「選択肢」の入力フィールド(セレクトボックス、チェックボックス、ラジオボタン、真/偽)を設定
まずカテゴリ用の入力フィールドを作成します。
「フィールドラベル」「フィールド名」は適当なものを入力します。
「フィールドタイプ」は、カテゴリと合わせるためにチェックボックスがいいでしょう。
「選択し」は、カテゴリのタームをテキストで入力します。
「カテゴリ」の情報を持つ「選択肢」の項目はこれで完成です。
本当は、「条件判定」で設定する条件に「選択肢」の入力フィールドではなく、「Relational」の「タクソノミー」のフィールドタイプを選択することができればベストなのですが、それができないのは残念です。
そのため、カテゴリ、もしくは、カスタムタクソノミーとして設定する項目(ターム)を「選択し」として改めて登録し直す必要があります。
(カテゴリ、タクソノミーの項目が追加、更新した場合は、その都度「選択し」を手作業で更新する必要があります。)
また、カテゴリが階層化されていてもここでは階層化した状態を作ることができないのも残念なところです。
2.必要な入力フィールドを設定
各カテゴリごとで必要な入力フィールドを設置します。
入力フィールドの設置自体は特殊な対応は必要ありません。
3.条件判定に1で設定したカテゴリを設定
入力フィールドを設定して、最後に「条件判定」を設定します。
「条件判定」で「はい」を選択すると、条件設定の入力フィールドが表示されます。
例えば、「予算」は「飲食店」用の項目ですので、上記のように「カテゴリの選択肢」-「等しい」-「飲食店」を選択します。
例えば、「予約の可否」は、「飲食店」と「病院」用の項目ですので、上記のように「条件判定」を「飲食店」と「病院」の 2つを指定します。
これで「飲食店」を選択すると「予算」「予約の可否」の項目が表示するようになります。
4.設定した入力フィールドの動作確認
設定した想定通りになっているか、動作確認を行うため、投稿画面に遷移します。
「条件判定」の設定を行うと、投稿の画面で「カテゴリの選択肢」の「飲食店」にチェックを入れると「予算」「予約の可否」の入力フィールドが自動的に出現します。
「病院」を選択した場合は、「予約の可否」のみが出現します。
Advanced custom Fieldsの条件判定はやや分かりにくい機能ですが、「条件判定」の設定を使いこなせるようになることで、柔軟な入力フィールドを持つ投稿フォームを構築することができるようになります。
ぜひお試しください!
まぁ、自分一人で運営しているサイトなら、条件判定を使わずに「フィールド記入のヒント」に「この項目は『飲食店』『病院』で必要となる入力項目です。」みたいな注釈を付けておけば足りる状況はありますね。
そして、公開側では入力がない項目は表示しなければ足りるわけですからね。
Advanced Custom Fieldsの関連記事
Advanced Custom Fields管理画面の全項目完全解説・カスタムフィールド決定版!
Advanced Custom Fieldsの全項目解説・公開側表示編集編
WordPressのカテゴリやタクソノミーにカスタムフィールド項目を追加する方法
Advanced Custom Fieldsの関数の全部の使い方を調べてみた
Advanced Custom Fields(ACF)のアドオン・ギャラリーの使い方解説
Advanced Custom Fields(ACF)のアドオン・繰り返しフィールドの使い方解説
WordPressのカスタムフィールド、カスタム投稿、カスタムタクソノミーとは?
Advanced Custom Fieldsのカスタムフィールドの登録上限が max_input_varsに影響する問題の対処方法
Advanced custom Fieldsのフィールドグループを簡単に複製する方法
Advanced custom Fieldsの条件判定活用方法・フィールドグループ複製より便利
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
Throws SPAM Awayでコメントスパム対策を完璧に。自動削除で運用の手間ゼロ
コメントスパム対策の決定版ともいうべきプラグイン。簡単な設定で自動的にスパムコメントを削除してくれるので煩わしい作業はゼロに。細かな設定も可能。
-
-
Category OrderでWordPressのカテゴリを並替えよう
Category Orderは基本機能では並び替えができないカテゴリを並び替える機能を提供するプラグインです。ドラッグ&ドロップで並び替えができる簡単インターフェイスです。
-
-
WordPress投稿にPHPを記述するショートコードの使い方add_shortcode
WordPressの投稿ページで PHPの処理を行うには add_shortcode関数を使ったショートコードという機能を利用します。
-
-
Never Let Me Goで会員制サイトの退会機能を実装
会員制サイトで退会する機能を提供するプラグインの設定方法の解説。Theme My Loginなどの会員登録のプラグインと組み合わせて利用します。
-
-
WordPressの一覧ページのテンプレートの種類とファイルの設定
ファイル名に従って一覧ページのテンプレートは選択される。ルールに従ってファイル名を付けることで任意のカテゴリ、タクソノミーごとのテンプレートを指定可能。
-
-
WordPressにプラグインを使わず OGP(Open Graph Protocol)の設定方法解説
WordPressに OGP(Open Graph Protocol)をプラグインを使わずに設定する方法の解説。
-
-
WordPressの送信メールが協定世界時(UTC・グリニッジ標準時)の問題対応
WordPressから送信されてくるメールが9時間ずれている。その不具合の解消方法と根本原因の解説です。date_default_timezone_set();の設定を変更で対応できます。
-
-
BackWPupでバックアップ・リストア(復元)の具体的手順
BackWPupその9。バックアップファイルからのリストア(復元)の手順です。
-
-
WordPressのおすすめの確認画面付きお問い合わせフォームプラグイン・MW WP Form
MW WP Formは確認画面が付いているオススメのフォームプラグインです。企業サイトを CMSとして構築する際にも利用できる実力派です。
-
-
BackWPupでバックアップ・Jobの設定・保存する情報の設定
BackWPupその2。Jobのバックアップの基本部分と対象の設定についての解説。