# add_settings_field()

URL: https://chugunov.pro/api-wordpress/functions/add_settings_field/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 2.7.0.

## Сигнатура

```php
add_settings_field( string $id, string $title, callable $callback, string $page, string $section = 'default', array $args = array() )
```

## Описание

Часть Settings API. Используется для определения поля настройки, которое отображается как часть секции настроек на странице настроек. Поля отображаются с помощью do_settings_fields() в do_settings_sections() .
Аргумент $callback должен быть именем функции, которая выводит HTML-теги ввода для этого поля настройки. Используйте get_option() для получения существующих значений для отображения.

## Параметры

- `$id` `string` — обязательный. Слаг для идентификации поля. Используется в атрибуте 'id' тегов.
- `$title` `string` — обязательный. Отформатированный заголовок поля. Отображается как подпись поля при выводе.
- `$callback` `callable` — обязательный. Функция, заполняющая поле нужными элементами ввода формы. Функция должна выводить результат через echo.
- `$page` `string` — обязательный. Слаг страницы настроек, на которой показывать секцию (general, reading, writing, …).
- `$section` `string` — необязательный, по умолчанию `'default'`. Слаг секции страницы настроек, в которой показывать метабокс. Значение по умолчанию 'default'.
- `$args` `array` — необязательный, по умолчанию `array()`. Дополнительные аргументы, передаваемые в функцию обратного вызова.
  
  label_for stringЕсли задан, заголовок настройки будет обёрнут в элемент , а его атрибут for заполнен этим значением.
  
  class stringCSS-класс, добавляемый к элементу при выводе поля.

## Исходный код

Файл: `wp-admin/includes/template.php:1715`

```php
function add_settings_field( $id, $title, $callback, $page, $section = 'default', $args = array() ) {
	global $wp_settings_fields;

	if ( 'misc' === $page ) {
		_deprecated_argument(
			__FUNCTION__,
			'3.0.0',
			sprintf(
				/* translators: %s: misc */
				__( 'The "%s" options group has been removed. Use another settings group.' ),
				'misc'
			)
		);
		$page = 'general';
	}

	if ( 'privacy' === $page ) {
		_deprecated_argument(
			__FUNCTION__,
			'3.5.0',
			sprintf(
				/* translators: %s: privacy */
				__( 'The "%s" options group has been removed. Use another settings group.' ),
				'privacy'
			)
		);
		$page = 'reading';
	}

	$wp_settings_fields[ $page ][ $section ][ $id ] = array(
		'id'       => $id,
		'title'    => $title,
		'callback' => $callback,
		'args'     => $args,
	);
}
```

## История изменений

- 4.2.0 — The $class argument was added.
- 2.7.0 — Introduced.

## Связанные

Использует: [`__`](https://chugunov.pro/api-wordpress/functions/__/), [`_deprecated_argument`](https://chugunov.pro/api-wordpress/functions/_deprecated_argument/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/add_settings_field/
