エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


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は一つ不満なポイントがあります。
それは、フィールドグループのコピー、複製する機能が用意されていないことです。
 
 
例えば、近所の商店街の情報を提供するサイトを構築するとしましょう。
 
20160613_wp_01
 
その場合、まずどの店舗でも共通項目として、店舗名、住所、電話番号、地図の緯度経度などを入力します。
 
加えて、
「飲食店」というカテゴリの場合は、メニューや予算、席数、予約の可否などを入力します。
「衣料品店」というカテゴリの場合は、ターゲット層や予算、取り扱いブランドなどを入力します。
「病院」というカテゴリの場合は、診療科や取扱保険、予約の可否などを入力します。
 
といったように、共通項目とカテゴリごとに必要な項目とに分かれます。
 
この場合、「飲食店」「衣料品店」といったそれぞれの入力項目に合わせてフィールドグループを作ることでしょう。
最初に一つのカテゴリのフィールドグループを作り、それを複製して他のカテゴリのフィールドグループを作りたい、と思うことでしょう。
でも、Advanced custom Fieldsにはフィールドグループを複製する機能がないため、簡単には複製できません。
 
一応「Advanced Custom Fields管理画面の全項目完全解説・カスタムフィールド決定版!/Export」や「Advanced custom Fieldsのフィールドグループを簡単に複製する方法」で解説していますが、Advanced custom Fieldsの Export機能を使うことでフィールドグループを複製することは可能ですが、心理的にハードルが高い方法です。
 
 
そのため、今回この記事では Advanced custom Fieldsに用意されている「条件判定」機能を使って、メンテナンスが必要になった場合のことも考慮した処理を構築しようと思います。
 
 
「条件判定」機能とは、「選択肢」の入力フィールド(セレクトボックス、チェックボックス、ラジオボタン、真/偽)に設定された「選択し」の選択されたものを条件として、入力フィールドを表示するか、しないかを設定する項目です。
 
Advanced Custom Fieldsの条件判定の基本的な?使い方としては「Advanced Custom Fields管理画面の全項目完全解説・カスタムフィールド決定版!/選択肢項目の条件判定」にも解説をしていますので、こちらも参考にしてください。
 
 


 

カテゴリごとの入力フィールドの具体的な手順

 

  1. 「選択肢」の入力フィールドにカテゴリを設定
  2. 必要な入力フィールドを設定
  3. 条件判定に1で設定したカテゴリを設定
  4. 設定した入力フィールドの動作確認

 
という流れになります。
 
 

1.「選択肢」の入力フィールド(セレクトボックス、チェックボックス、ラジオボタン、真/偽)を設定

 
まずカテゴリ用の入力フィールドを作成します。
 
20160613_wp_02
 
「フィールドラベル」「フィールド名」は適当なものを入力します。
「フィールドタイプ」は、カテゴリと合わせるためにチェックボックスがいいでしょう。
 
「選択し」は、カテゴリのタームをテキストで入力します。
「カテゴリ」の情報を持つ「選択肢」の項目はこれで完成です。
 
 
本当は、「条件判定」で設定する条件に「選択肢」の入力フィールドではなく、「Relational」の「タクソノミー」のフィールドタイプを選択することができればベストなのですが、それができないのは残念です。
 
そのため、カテゴリ、もしくは、カスタムタクソノミーとして設定する項目(ターム)を「選択し」として改めて登録し直す必要があります。
(カテゴリ、タクソノミーの項目が追加、更新した場合は、その都度「選択し」を手作業で更新する必要があります。)
 
また、カテゴリが階層化されていてもここでは階層化した状態を作ることができないのも残念なところです。
 
 

2.必要な入力フィールドを設定

 
各カテゴリごとで必要な入力フィールドを設置します。
入力フィールドの設置自体は特殊な対応は必要ありません。
 
 

3.条件判定に1で設定したカテゴリを設定

 
入力フィールドを設定して、最後に「条件判定」を設定します。
「条件判定」で「はい」を選択すると、条件設定の入力フィールドが表示されます。
 
20160613_wp_03
 
例えば、「予算」は「飲食店」用の項目ですので、上記のように「カテゴリの選択肢」-「等しい」-「飲食店」を選択します。
 
20160613_wp_04
 
例えば、「予約の可否」は、「飲食店」と「病院」用の項目ですので、上記のように「条件判定」を「飲食店」と「病院」の 2つを指定します。
 
これで「飲食店」を選択すると「予算」「予約の可否」の項目が表示するようになります。
 
 

4.設定した入力フィールドの動作確認

 
設定した想定通りになっているか、動作確認を行うため、投稿画面に遷移します。
 
20160613_wp_05
 
「条件判定」の設定を行うと、投稿の画面で「カテゴリの選択肢」の「飲食店」にチェックを入れると「予算」「予約の可否」の入力フィールドが自動的に出現します。
「病院」を選択した場合は、「予約の可否」のみが出現します。
 
 
 
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の条件判定活用方法・フィールドグループ複製より便利

 - WordPress

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

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

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

WordPressにプラグインを使わず OGP(Open Graph Protocol)の設定方法解説

WordPressに OGP(Open Graph Protocol)をプラグインを使わずに設定する方法の解説。

wp_mail()関数でWordPressのスパム対策済のメールフォーム作成

WordPressでメール送信フォームを作成するための関数「wp_mail()」の使い方の解説。CC、BCC、添付ファイルも HTMLメールも設定可能。

WordPressのPing・更新情報サービス設定方法とPingサーバ

WordPressのPing機能、更新情報サービスの設定方法の解説と Pingサーバのリストを提供しています。

WordPressの一般設定 投稿設定 表示設定 ディスカッション メディア

基本的な設定を行う「設定」の解説です。ブログサイトを構築する際に必要な設定内容を一般設定、投稿設定、表示設定などの各項目を説明しながら設定内容を提示しています。

WordPressの管理画面ログインURLファイルにBasic認証を設定する方法解説

管理画面のログインURLにBasic認証を追加することでさらなる極めて高いセキュリティ向上の方法を解説します。

WordPressのカテゴリやタクソノミーにカスタムフィールド項目を追加する方法

WordPressのカテゴリやタクソノミーに編集する項目を追加する方法の解説。Advanced Custom Fieldsを使うと簡単。テンプレートに記述する方法も解説。

Theme My Loginでメール認証、管理者承認付の会員管理・基本編

会員管理をするプラグインTheme My Loginの解説。メール認証、管理者認証、reCAPTCHAによるいたずら登録を防止し、ログイン攻撃対応のセキュリティも備わっている。

WordPressで指定カテゴリにnoindexをプラグインなしで設定。特定の記事は外す処理も
WordPressで指定カテゴリにnoindexをプラグインなしで設定。特定の記事は外す処理も

指定したカテゴリのみnoindexをプラグインなしで設定する関数を解説。指定したカテゴリの中でも指定した記事はnoindex設定しないオプションを装備。その処理とnoindexを設定すべき理由を解説。

DuplicatorでWordPressを簡単引越し!インストーラー付のバックアップにも

WordPressの引越しや開発環境から本番環境への移行など他の環境に移す作業を簡単にしてくれるプラグインの紹介。インストーラー付のバックアップツールとしても使る。

WordPressのSEOタイトル、キーワード、ディスクリプション編集解説

ヤフーやグーグルの検索結果を見ながらSEO視点でタイトル、ディスクリプションを書く際の基準を解説!スマホ対策も解説!