acf_add_options_page()

Описание

Добавляет страницу настроек в меню администратора.

Страницы настроек используются для хранения глобальных параметров. Эти параметры не привязаны к определённой записи, а сохраняются в таблице wp_options.

После регистрации страница появится в меню администратора. Затем вы сможете назначить этой странице поля с помощью правила расположения «Страница настроек» при редактировании группы полей.

Параметры

acf_add_options_page( [$settings] );

$settings

(array) (Необязательно) Массив аргументов для регистрации страницы настроек.
– page_title
(string) Заголовок, отображаемый на странице настроек. По умолчанию — «Options».
~~~
‘page_title’ => __(‘My Options’),
~~~

  • menu_title
    (string) Заголовок, отображаемый в меню администратора. По умолчанию используется значение ‘page_title’.

    'menu_title' => __('My Options'),
    
  • menu_slug
    (string) URL-слаг, используемый для уникальной идентификации этой страницы настроек. По умолчанию используется версия menu_title, адаптированная для URL.

    'menu_slug' => 'my-options',
    
  • capability
    (string) Возможность, необходимая для отображения этого меню пользователю. По умолчанию — ‘edit_posts’. Подробнее о »‘capability’. По умолчанию — ‘options’. Добавлено в версии 5.2.7.

    'post_id' => 'options',
    
  • autoload
    (bool) Данные, сохранённые в таблице wp_options, получают идентификатор «autoload».
    Если установлено значение true, WP автоматически загружает эти значения одним SQL-запросом, что может повысить производительность загрузки страницы. По умолчанию — false. Добавлено в версии 5.2.8.

    'autoload' => false,
    
  • update_button
    (string) Текст, отображаемый на кнопке отправки формы страницы настроек. Добавлено в версии 5.3.7.

    'update_button' => __('Обновить', 'acf'),
    
  • updated_message
    (string) Сообщение, отображаемое над формой после обновления страницы настроек. Добавлено в версии 5.6.0.

    'updated_message' => __("Настройки обновлены", 'acf'),
    

Возвращаемое значение

(array) Проверенные и окончательные настройки страницы. Это позволяет узнать значение menu_slug и использовать его позже при добавлении дочерних страниц настроек.

Примеры

Страница настроек по умолчанию

В этом примере показано, как создать стандартную страницу настроек.

functions.php

add_action('acf/init', function() {
  if( function_exists('acf_add_options_page') ) {
    acf_add_options_page();
  }
} );

Настроенная страница настроек

В этом примере показано, как создать настроенную страницу настроек и сохранить данные в переменной для последующего использования.

functions.php

add_action('acf/init', 'my_acf_op_init');
function my_acf_op_init() {

    // Проверяем наличие функции.
    if( function_exists('acf_add_options_page') ) {

        // Регистрируем страницу настроек.
        $option_page = acf_add_options_page(array(
            'page_title'    => __('Общие настройки темы'),
            'menu_title'    => __('Настройки темы'),
            'menu_slug'     => 'theme-general-settings',
            'capability'    => 'edit_posts',
            'redirect'      => false
        ));
    }
}

Создание дочерних страниц

В этом примере показано, как создать дочернюю страницу настроек с помощью атрибута parent_slug.

functions.php

add_action('acf/init', 'my_acf_op_init');
function my_acf_op_init() {

    // Проверяем наличие функции.
    if( function_exists('acf_add_options_page') ) {

        // Добавляем родительскую страницу.
        $parent = acf_add_options_page(array(
            'page_title'  => __('Общие настройки темы'),
            'menu_title'  => __('Настройки темы'),
            'redirect'    => false,
        ));

        // Добавляем дочернюю страницу.
        $child = acf_add_options_page(array(
            'page_title'  => __('Настройки социальных сетей'),
            'menu_title'  => __('Социальные сети'),
            'parent_slug' => $parent['menu_slug'],
        ));
    }
}

Примечания

Приоритет

Эту функцию необходимо использовать до действия admin_menu (приоритет 99), поскольку именно в этот момент страницы администратора регистрируются в ядре WordPress. Мы рекомендуем использовать действие «acf/init».

WordPress 6.8

Начиная с WordPress 6.8, любая функция, вызывающая раннюю инициализацию ACF, например эта функция, будет приводить к PHP-уведомлению, если вызвать её до действия acf/init:

Уведомление: функция _load_textdomain_just_in_time вызвана неправильно. Загрузка переводов для домена acf была запущена слишком рано. Обычно это означает, что некоторый код плагина или темы выполняется слишком рано. Переводы должны загружаться во время действия init или позже.

Чтобы избежать этого, убедитесь, что не вызываете функции ACF до действия acf/init. В приведённых выше примерах показано, как правильно обернуть эти вызовы.

Обновлено: 30.09.2026