WordPressプラグインで管理画面の設定ページを作成する(クラス構文編 その4 ~ 設定画面を初期化するメソッドの定義)

WordPressプラグインで管理画面の設定ページを作成する(クラス構文編 その3 ~ 設定画面を表示するメソッドの定義)
その3の続きです。前回はエラー画面が表示されていたところで作業を終了しました。エラーが発生する理由は、コンストラクタで使用することを明示している、独自関数のpage_initメソッドが存在しないためです。
設定ページの初期化メソッドの作成
public function page_init() { }
したがって独自関数のpage_initメソッドをPHPの文法にしたがって書くだけでエラーは消えます。GitHubにコード(新しいタブで開く)を公開していますので、ご興味のある方は参考にしてください。
設定ページの初期化メソッドの内容を定義
page_initメソッドを記述しただけでは何も動作しませんので、中身を具体的に定義します。
設定項目と無害化用コールバックの登録
register_setting( 'my_option_group', 'my_option_name', array( $this, 'sanitize' ) );
register_setting関数(新しいタブで開く)は、設定ページにおける設定項目と無害化用コールバック関数を登録します。ただしクラス構文内でregister_setting関数を使用する場合は、第三引数を配列にして1つ目の要素を”$this”に、2つ目の要素にメソッド名を登録します。sanitizeメソッドは後ほど定義します。
設定ページでヘッダを共有する
add_settings_section( 'setting_section_id', 'My Custom Settings', array( $this, 'print_section_info' ), 'my-setting-admin' );
add_settings_section関数(新しいタブで開く)は、WordPress 設定ページでヘッダを共有するいくつかの設定のまとまりです。プラグイン内で新規ページを作成するほか、既存の設定ページにセクションを追加できます。第三引数の2番目の要素としている、print_section_info関数は後ほど定義します。
設定項目を追加する
設定ページで設定する項目は、今回の例ではIDとタイトルです。それぞれ設定項目を設定ページとセクションへ登録するためのadd_settings_field関数(新しいタブで開く)を使います。
IDフィールド
add_settings_field( 'id_number', // ID 'ID Number', // Title array( $this, 'id_number_callback' ), 'my-setting-admin', 'setting_section_id' );
Titleフィールド
add_settings_field( 'title', 'Title', array( $this, 'title_callback' ), 'my-setting-admin', 'setting_section_id' );
なおGitHub(新しいタブで開く)でもコードを公開していますので、ご興味のある方は合わせて参考にしてください。
設定ページの実行
ここまで記述したコードで設定ページを確認すると、3つのエラーが設定画面に表示されます。理由はprint_section_info、id_number_callback、title_callbackの各独自関数が定義されていないためです。次回のその5において、sanitaizeも含めた独自関数の定義を行います。