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

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

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

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

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

表示制御の条件を変更するには、フィールドグループの編集画面を開き、「Settings for Field Group」セクションの Appears on で、「Edit」ボタンをクリックします。

投稿タイプによる制御

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

タクソノミによる制御

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

テンプレートによる制御

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

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

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

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

previous arrow
next arrow
Full screenExit full screen
Slider

投稿編集画面では次のように動作します。

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

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

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

Slider

投稿編集画面では次のように動作します。

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

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

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

Toolsetの使い方・全目次