Smart Custom Fields のフィールドをコードで登録するときの設定をその都度ソースから拾うのが面倒なので、自分用にまとめておこうと。
まずは、キタジマさん提示のサンプルコードの一部をベースに、いくつかの共通項目を追加したコードを下記に示します。この記事で取り上げるのは主に下記の下線部分です。
// $Setting->add_group( 'ユニークなID', 繰り返し可能か, カスタムフィールドの配列 ); $Setting->add_group( 'group-name', false, array( array( 'name' => 'field-name', // 必須 'type' => 'text', // 必須 'label' => 'テストフィールド', 'instruction' => '', 'notes' => '', ), ) );
これら5項目はすべてのフィールドタイプで有効な共通項目 ( type と name は必須 ) です。これらのうち type 以外は単なる文字列なのでここでは触れず、フィールドタイプごとの type の値と、共通項目以外のフィールド固有の項目を挙げていきます。(下記で、各項目の値として書いてあるのは、Smart Custom Fields のソースコードで設定されている各項目のデフォルト値です)
基本フィールド
真偽値
'type' => 'boolean', 'default' => 0, 'true_label' => __( 'Yes', 'smart-custom-fields' ), 'false_label' => __( 'No', 'smart-custom-fields' ),
テキスト
'type' => 'text', 'default' => '',
テキストエリア
'type' => 'textarea', 'rows' => 5, 'default' => '',
選択フィールド
チェックボックス
'type' => 'check', 'allow-multiple-data' => true, 'choices' => '', // array( 'key1' => 'value1', … ) 'check_direction' => 'horizontal', // or vertical 'default' => '', // array( 'key1', 'key3', … )
ラジオボタン
'type' => 'radio', 'choices' => '', // array( 'key1' => 'value1', … ) 'radio_direction' => 'horizontal', // or vertical 'default' => '', // 'key1'
セレクトボックス
'type' => 'select', 'choices' => '', // array( 'key1' => 'value1', … ) 'default' => '', // 'key1'
コンテンツフィールド
ファイル
'type' => 'file',
画像
'type' => 'image', 'size' => 'full',
リッチテキストエディタ (WYSIWYG)
'type' => 'wysiwyg', 'default' => '',
その他のフィールド
カラーピッカー
'type' => 'colorpicker', 'default' => '', // #RRGGBB
日付ピッカー
'type' => 'datepicker', 'date_format' => '', // jQuery UI API: dateFormat 参照 'max_date' => '', // jQuery UI API: maxDate 参照 'min_date' => '', // jQuery UI API: minDate 参照 'default' => '',
date_format で指定する形式については、jQuery UI API Documentation の dateFormat 参照。
max_date と min_date は、date_format で指定した形式の日付、または y, m, w, d を使った相対指定 (+1m +1w など)。 jQuery UI API Documentation の maxDate, minDate 参照。
default は、date_format で指定した形式の日付を設定。
関連ポスト
'type' => 'relation', 'allow-multiple-data' => true, 'post-type' => '', 'limit' => 0,
関連ターム
'type' => 'taxonomy', 'allow-multiple-data' => true, 'taxonomy' => '', 'limit' => 0,
まとめ
たくさんあって結構大変でした。キタジマさんが『カスタムフィールドを定義する配列で使える項目はまとめるのが面倒なので…プラグインのコードを直接確認してみてください』と書いてらっしゃるのもうなずけます。このようなシンプルかつ洗練されたプラグインの開発者と貢献者のみなさまに感謝です。