説明
add_settings_field() は、設定ページに、入力欄(設定項目)を追加する関数です。
基本構文
add_settings_field( string $id, string $title, callable $callback, string $page, string $section = 'default', array $args = array() ): void
引数
$id:項目ID$title:ラベル$callback:入力欄を出力する関数$page:設定ページのスラッグ$section:セクションID$args:コールバックに渡す引数
戻り値
戻り値はありません。
使い方(サンプル)
add_settings_field( 'my_text', 'テキスト', 'my_text_field', 'my-options', 'my_section' );
注意点
- 出力する入力欄では、
esc_attr()で値をエスケープします。
実務での使いどころ
- 設定ページに、入力項目(テキスト、チェックボックスなど)を、追加するとき。
よくあるミスと対処
- 入力欄の
name属性が、登録したオプション名と、合っていない。値が保存されない。 $sectionが、add_settings_section()で作ったものと、違う。- 入力欄の値を、エスケープせずに、出力している。
esc_attr()を通す。 $pageが、do_settings_sections()に渡すものと、違う。
NG例
echo '<input name="my_input" value="' . get_option( 'my_option' ) . '">'; // name が違い、エスケープもない
OK例
add_settings_field( 'my_option', '設定値', function () {
printf(
'<input type="text" name="my_option" value="%s">',
esc_attr( get_option( 'my_option', '' ) )
);
}, 'my-settings', 'main' );
使い分け早見表
| 関数 | 役割 |
|---|---|
add_settings_field() |
設定の入力項目を、追加する |
add_settings_section() |
設定のセクションを、追加する |
register_setting() |
設定(オプション)を、登録する |
関連項目
add_settings_section()、register_setting()
公式リファレンス:add_settings_field() | Function | WordPress Developer Resources

コメント