説明
register_setting() は、設定項目を登録し、保存時のサニタイズなどを指定する関数です。
基本構文
register_setting( string $option_group, string $option_name, array $args = array() ): void
引数
$option_group:設定グループ名$option_name:オプション名$args:type、sanitize_callback、default、show_in_restなど
戻り値
戻り値はありません。
使い方(サンプル)
add_action( 'admin_init', function() {
register_setting( 'my_group', 'my_option', array(
'type' => 'string',
'sanitize_callback' => 'sanitize_text_field',
) );
} );
注意点
admin_initフックで呼びます。sanitize_callbackを必ず指定して、保存値を検証します。
実務での使いどころ
- プラグインやテーマの設定を、Settings API で、保存するときの、最初の登録。
- 保存時の、サニタイズの関数(
sanitize_callback)を、指定するとき。
よくあるミスと対処
admin_initフックの外で呼んでいる。sanitize_callbackを、指定していない。入力値が、そのまま保存される。$option_groupが、フォームのsettings_fields()と、合っていない。show_in_restを指定せず、REST APIやブロックエディターから、使えない。show_in_restで、REST API・ブロックエディターから使う設定は、admin_initではなく、initフックで登録する(admin_initは、RESTのリクエストでは実行されない)。
NG例
register_setting( 'my_group', 'my_option' ); // sanitize がなく、フックの外
OK例
add_action( 'admin_init', function () {
register_setting( 'my_group', 'my_option', array(
'type' => 'string',
'sanitize_callback' => 'sanitize_text_field',
'default' => '',
) );
} );
使い分け早見表
| 関数 | 役割 |
|---|---|
register_setting() |
設定(オプション)を、登録する |
add_settings_section() |
設定のセクションを、追加する |
add_settings_field() |
設定の入力項目を、追加する |
関連項目
add_settings_section()、add_settings_field()、settings_fields()
公式リファレンス:register_setting() | Function | WordPress Developer Resources

コメント