投稿編集画面でのカスタムフィールドとグループの出現を制御する

Toolset Typesプラグインを使うと、WordPress投稿編集画面のカスタムフィールド入力欄の表示を、様々な条件に応じて制御することができます。制御の方法は大きく2つあり、1つはフィールドグループ全体(メタボックス)の表示を制御する方法で、もう一つはフィールドグループ内に所属しているカスタムフィールドの表示を個別に制御する方法です。

フィールドグループ全体の表示制御

Toolsetのダッシュボードからカスタムフィールドグループを作成すると、特定の投稿タイプと関連付けられる形でフィールドグループの表示制御が自動的に設定されますが、関連付ける投稿タイプの変更はもちろん、投稿タイプ以外の条件を設定することも可能です。また、複数の条件を組み合わせることもできます

条件設定画面の場所

投稿編集画面でのカスタムフィールドとグループの出現を制御する

① フィールドグループの編集画面を開き、「Settings for Field Group」セクションの Appears on で、「Edit」ボタンをクリックします。

投稿タイプによる制御

Post Types タブから、このカスタムフィールドグループを表示させたい投稿タイプを選択します。すべてのチェックを外すとどの投稿タイプでも表示されるようになります。

投稿編集画面でのカスタムフィールドとグループの出現を制御する

Post Types タブの表示例

タクソノミによる制御

Taxonomies タブでは、カテゴリー、タグ、カスタムタクソノミでの制御が可能です。例えば、個人的なブログで「ダイエット」というタグをつけた投稿のみ、投稿編集画面で体組成を入力する数値フィールドを表示させるなど、敢えてカスタム投稿タイプを作成してまで使うカスタムフィールドではないが、特定のカテゴリーやタグに属する記事を投稿する時だけ利用したいカスタムフィールドがある場合などに設定すると便利です。

投稿編集画面でのカスタムフィールドとグループの出現を制御する

Taxonomies タブの表示例

テンプレートによる制御

Templates タブでは、WordPressテーマフォルダ内にあるテンプレートファイル(.php)や、Toolsetで作成したコンテンツテンプレートによってカスタムフィールドグループの表示を制御します。使用しているテーマにもよりますが、例えば右サイドバー付きのテンプレートを使用する投稿のみ、バナー広告指定用のテキストフィールドを表示させるといった使い方も考えられます。

投稿編集画面でのカスタムフィールドとグループの出現を制御する

Templates タブの表示例

カスタムフィールド値による制御

Data-dependant タブでは、ある投稿タイプで、このフィールドグループと同時に使用されている他のフィールドグループに所属するカスタムフィールドの値に基づいて、このフィールドグループの表示を制御します。感覚的には前述の「タクソノミによる制御」に近いものといえます。例えば、以下のような制御を実装できます。

投稿編集画面でのカスタムフィールドとグループの出現を制御する

フィールド値による簡単なフィールドグループの表示制御例

この例では、他のグループに属する「料理のグループを表示」フィールドにチェックが入っている時(=値が1の時)、「料理フィールド」グループを表示させます。

投稿編集画面でのカスタムフィールドとグループの出現を制御する

① Data-dependant タブでAdd conditon をクリックします。

投稿編集画面でのカスタムフィールドとグループの出現を制御する

② 条件となるカスタムフィールドを選択し、条件式と判定するための値 を指定します。

投稿編集画面でのカスタムフィールドとグループの出現を制御する

※ カスタムフィールドを評価するための条件式は複数設定可能です。

投稿編集画面でのカスタムフィールドとグループの出現を制御する

③ 複数の条件区分がある場合は、全体の判定方法を選択してから、フィールドグループを保存します。「ANY…」はいずれかの条件にマッチした時、「ALL…」はすべての条件にマッチした時にこのフィールドグループを表示します。

以下の動画で実際の動作を確認してみましょう。

投稿編集画面ではこのように動作します。
※動画をタップして再生(無音です)

カスタムフィールドの表示の個別制御

ここからは、カスタムフィールドの表示を個別に制御する方法について見てみましょう。といっても、条件を設定するためのボタンの場所が違うだけで、それ以外の操作は前述のカスタムフィールド値によるフィールドグループの制御と同じです。例えば、以下のような制御を実装できます。

投稿編集画面でのカスタムフィールドとグループの出現を制御する

他のフィールド値による簡単なフィールド表示制御の例

この例では、同一グループに属する「料理のサブタイトル」フィールドが空白でない時、かつ、他のグループに属する「料理の写真を表示」フィールドにチェックが入っている時(=値が1の時)、「料理の写真」フィールドを表示させます。

投稿編集画面でのカスタムフィールドとグループの出現を制御する

① 表示を制御したいカスタムフィールドを開き、Conditional display の「Set condition(s)」をクリックします。

投稿編集画面でのカスタムフィールドとグループの出現を制御する

② Data-dependent display filters で Add condition をクリックします。

投稿編集画面でのカスタムフィールドとグループの出現を制御する

③ 条件となるカスタムフィールドを選択し、条件式と判定するための値 を指定します。

投稿編集画面でのカスタムフィールドとグループの出現を制御する

※ カスタムフィールドを評価するための条件式は複数設定可能です。

投稿編集画面でのカスタムフィールドとグループの出現を制御する

④ 条件式がセットされたことを確認してフィールドグループを保存します。

以下の動画で実際の動作を確認してみましょう。

投稿編集画面ではこのように動作します。
※動画をタップして再生(無音です)

Data-dependant で使用する条件式の意味

  1. =
    投稿のフィールド値が、判定用の値と同じ(フィールドの種類を問わない)
    ※例えば、テキストフィールドの「1」と数値フィールドの「1」は同じものとして判定します。
  2. >
    投稿のフィールド値が、判定用の値よりも大きい
  3. <
    投稿のフィールド値が、判定用の値よりも小さい
  4. >=
    投稿のフィールド値が、判定用の値以上
  5. <=
    投稿のフィールド値が、判定用の値以下
  6. ===
    投稿のフィールド値が、判定用の値と同じ(フィールドの種類も判定)
    ※この場合、テキストフィールドの「1」と数値フィールドの「1」は異なるものとして判定します。
  7. !=
    投稿のフィールド値が、判定用の値と異なる(フィールドの種類を問わない)
    ※例えば、テキストフィールドの「1」と数値フィールドの「1」は同じものとして判定します。
  8. !==
    投稿のフィールド値が、判定用の値と異なる(フィールドの種類も判定)
    ※この場合、テキストフィールドの「1」と数値フィールドの「1」は異なるものとして判定します。

上記の6と8は、判定用の値に別のカスタムフィールドの値を使う場合に使用するようですが、通常は使いません。

Toolset JP Guide

ページ上部へ戻る