Last active
February 8, 2018 08:30
-
-
Save yousan/643aac32e0f2932e37960414d045af25 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Smart Custom Fieldsの定義用クラス | |
* グループごとにメソッドを作ると良い | |
* | |
* @link https://2inc.org/blog/2015/03/12/4670/ | |
*/ | |
Class Test_SmartCustomFields { | |
/** | |
* ロードするメソッド名を配列で列挙する。 | |
* add_filterされます。 | |
* | |
* @var String[] | |
*/ | |
private static $load_groups = array( | |
'test', | |
); | |
/** | |
* このクラス内にあるメソッドをロードさせるようにする。 | |
*/ | |
public static function load_scf_groups() { | |
foreach ( self::$load_groups as $group ) { | |
add_filter( 'smart-cf-register-fields', | |
array( __CLASS__, $group ), 10, 4 ); | |
} | |
} | |
public static function test( $settings, $type, $id, $meta_type ) { | |
if ( $type !== 'page' ) { | |
return $settings; | |
} | |
/** @var Smart_Custom_Fields_Setting $Setting */ | |
$Setting = SCF::add_setting( 'test-group-1', '固定ページ用テスト' ); | |
// $Setting->add_group( 'ユニークなID', 繰り返し可能か, カスタムフィールドの配列 ); | |
$Setting->add_group( 'front-page-slider', false, array( | |
array( | |
'type' => 'text', // タイプ | |
'name' => 'scf-1', // 名前 | |
'label' => 'テキストのテストです', // ラベル | |
'default' => 'デフォルト値', // デフォルト | |
'instruction' => '説明文です。', // 説明文 | |
'notes' => 'ここに注記を入れてください' // 注記 | |
), | |
array( | |
'type' => 'boolean', // タイプ | |
'name' => 'scf-2', // 名前 | |
'label' => '真偽値のテストです', // ラベル | |
'default' => true, // デフォルト true or false | |
'true_label' => 'はい', // TRUE ラベル | |
'false_label' => 'いいえ', // FALSE ラベル | |
'instruction' => 'ここにテキストを入力してください。', // 説明文 | |
'notes' => 'ここに注記を入れてください', // 注記 | |
), | |
array( | |
'type' => 'textarea', // タイプ | |
'name' => 'scf-3', // 名前 | |
'label' => 'テキストエリアのテストです', // ラベル | |
'default' => 'デフォルトのテキストです', // デフォルト | |
'rows' => 5, // 行数 | |
'instruction' => 'ここにテキストを入力してください。', // 説明文 | |
'notes' => 'ここに注記を入れてください', // 注記 | |
), | |
array( | |
'type' => 'check', // タイプ | |
'name' => 'scf-4', // 名前 | |
'label' => 'チェックボックスのテストです', // ラベル | |
'choices' => array( | |
'key' => 'value', | |
'キー' => '値', | |
// 'ダブルアローがない場合', // エラーになります | |
'選択肢1' => '値1', | |
'選択肢2' => '値2', | |
'apple' => 'りんご', | |
'banana' => 'バナナ', | |
), | |
'check_direction' => 'horizontal', // 表示方向 vertical or horizontal | |
// デフォルト値。連想配列キー名を入れます。 | |
'default' => array( 'apple', 'banana' ), | |
'instruction' => 'ここにテキストを入力してください。', // 説明文 | |
'notes' => 'ここに注記を入れてください', // 注記 | |
), | |
array( | |
'type' => 'radio', // タイプ | |
'name' => 'scf-5', // 名前 | |
'label' => 'ラジオボタンのテストです', // ラベル | |
'choices' => array( | |
'key' => 'value', | |
'キー' => '値', | |
// 'ダブルアローがない場合', // エラーになります | |
'選択肢1' => '値1', | |
'選択肢2' => '値2', | |
'apple' => 'りんご', | |
'banana' => 'バナナ', | |
), | |
'check_direction' => 'horizontal', // 表示方向 vertical or horizontal | |
'default' => 'apple', // デフォルト値。 | |
'instruction' => 'ここにテキストを入力してください。', // 説明文 | |
'notes' => 'ここに注記を入れてください', // 注記 | |
), | |
array( | |
'type' => 'select', // タイプ | |
'name' => 'scf-5', // 名前 | |
'label' => 'ラジオボタンのテストです', // ラベル | |
'choices' => array( | |
'key' => 'value', | |
'キー' => '値', | |
// 'ダブルアローがない場合', // エラーになります | |
'選択肢1' => '値1', | |
'選択肢2' => '値2', | |
'apple' => 'りんご', | |
'banana' => 'バナナ', | |
), | |
'default' => 'apple', // デフォルト値。 | |
'instruction' => 'ここにテキストを入力してください。', // 説明文 | |
'notes' => 'ここに注記を入れてください', // 注記 | |
), | |
array( | |
'type' => 'file', // タイプ | |
'name' => 'scf-7', // 名前 | |
'label' => 'ファイルのテストです', // ラベル | |
'notes' => 'ここに注記を入れてください', // 注記 | |
), | |
array( | |
'type' => 'image', // タイプ | |
'name' => 'scf-8', // 名前 | |
'size' => 'full', // プレビューサイズ full, thumbnail, medium or large | |
'label' => 'ファイルのテストです', // ラベル | |
'notes' => 'ここに注記を入れてください', // 注記 | |
), | |
array( | |
'type' => 'wysiwyg', // タイプ | |
'name' => 'scf-9', // 名前 | |
'default' => '<blink>デフォルトの内容です</blink>', // default | |
'label' => 'WYSIWYGエディタのテストです', // ラベル | |
'notes' => 'ここに注記を入れてください', // 注記 | |
), | |
array( | |
'type' => 'colorpicker', // タイプ | |
'name' => 'scf-10', // 名前 | |
'default' => '#937cf9', // デフォルト値をRGBで | |
'label' => 'カラーピッカーのテストです。', // ラベル | |
'notes' => 'ここに注記を入れてください', // 注記 | |
), | |
array( | |
'type' => 'date', // タイプ | |
'name' => 'scf-11', // 名前 | |
'default' => '2017/01/01', // デフォルト値 | |
'date_format' => 'yy/mm/dd', // 日付のフォーマット。画面とデータベースの値の両方に影響します。 | |
'max_date' => '+100y', // デイトピッカーで表示されるカレンダーの未来の最大値 | |
'min_date' => '-100y', | |
'label' => 'ファイルのテストです', // ラベル | |
'notes' => 'ここに注記を入れてください', // 注記 | |
), | |
array( | |
'type' => 'relation', // タイプ | |
'name' => 'scf-12', // 名前 | |
'post-type' => array( 'post', 'page' ), // 表示する投稿タイプ | |
'label' => 'ファイルのテストです', // ラベル | |
'notes' => 'ここに注記を入れてください', // 注記 | |
), | |
array( | |
'type' => 'taxonomy', // タイプ | |
'name' => 'scf-13', // 名前 | |
'post-type' => array( 'category', 'tag' ), // 表示するタクソノミー | |
'label' => 'ファイルのテストです', // ラベル | |
'notes' => '注釈', // 注記 | |
), | |
) ); | |
$settings[] = $Setting; | |
return $settings; | |
} | |
/** | |
* 管理画面のメニューを作成する。 | |
* | |
* @link https://2inc.org/blog/2016/06/06/5280/ | |
*/ | |
public static function create_admin_menu() { | |
/** | |
* @param string $page_title ページのtitle属性値 | |
* @param string $menu_title 管理画面のメニューに表示するタイトル | |
* @param string $capability メニューを操作できる権限(manage_options とか) | |
* @param string $menu_slug オプションページのスラッグ。ユニークな値にすること。 | |
* @param string|null $icon_url メニューに表示するアイコンの URL | |
* @param int $position メニューの位置 | |
*/ | |
SCF::add_options_page( 'カスタムオプション', 'カスタムオプション', 'manage_options', 'custom-options' ); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment