これの作成の時に使った「Settings API」をより深掘りしてみる。
https://wpdocs.osdn.jp/Settings_APISettings APIって?
Settings APIを使えば、WordPressの管理画面に独自の設定画面を作成することができる。
新規でプラグインを作成するときはバリデーションとか保存の部分をWordPressが色々やってくれるので
保守の面でもSettings APIを使った方が安全。
今回はプラグインの設定ページを想定して作ってみる。
Settings APIの使い方
作業的には、主に3つの工程で作ることができる。
- セクションを追加 → add_settings_section
- フィールドを追加 → add_settings_field
- セクションの設定を追加 → register_setting
アクションフックの
admin_initで引っ掛けて使う。
セクションを追加
add_settings_section( $id, $title, $callback, $page );
管理画面のどこに設置するかなどを決める。
- $id → タグのid属性に振られる値(ここで指定したIDは次の項目のフィールドを追加する際に利用する)
- $callback → コールバック関数 セクションの中で実行される関数をここで指定する(セクションの紹介文などを出力したりする)
- $page → セクションを表示させるページをここで指定する
フィールドを追加
add_settings_field( $id, $title, $callback, $page, $section, $args );
表示するフィールドを決める。
- $id → タグのid属性に振られる値
- $title → フィールドのタイトル
- $callback → コールバック関数 フィールドなどを出力をする関数
- $page → フィールドを表示する設定ページのタイプ
- $section → ボックスを表示する設定ページのセクション
- $args → 追加の引数
セクションの設定を追加
register_setting( $option_group, $option_name, $sanitize_callback );
セクションの設定を決める。
- $option_group → どのページに追加をするか
- $option_name → オプションの名前
- $sanitize_callback → 適用する関数
完成形
ざっくり作るとこんな感じです。
class Test_Plugin_Option_Settings {
private function __construct() {
add_action( 'admin_init', [ $this, 'setup_sections' ] );
add_action( 'admin_init', [ $this, 'setup_fields' ] );
}
public function setup_sections() {
add_settings_section( 'test', 'test_settings', [], 'test' );
}
public function setup_fields() {
add_settings_field( 'test_fields', 'テストフィールド', [ $this, 'field_callback' ], 'test', 'test_section', [ 'type' => 'text', 'desc' => 'これはテストフィールドです。' ] );
register_setting( 'test', 'test_fielts', [ $this, $field_validator ] );
}
public function field_callback( $field ) {
// ここに表示したいフィールド
return $field;
}
public function field_validator( $value ) {
// ここに適用したいバリデーション
return $value;
}
}
field_callbackに表示させたいフィールドを。
field_validatorにはsubmitされる時のバリデーションを設定することができます。
結構簡単に設定ページが作成できるので使ってみてはいかがでしょうか??
◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇
私たちと一緒に働きませんか?
「Settings APIを使ってみる」はいかがでしたか?
株式会社プレスマンでは、
WordPressが大好きな方、仕事を通してさらにスキルを磨きたい方を募集しています。
まずは募集職種をご覧の上、お気軽にお問い合わせください。
あなたとお会いできるのを楽しみにしています。
採用情報を見る