acf_register_form()

Описание

Регистрирует форму для использования с функцией acf_form(). Доступно множество настроек для изменения формы. Они задаются добавлением параметров в массив $settings (см. ниже).

Параметры

<?php acf_register_form( $settings ); ?>

$settings

(String | Array) Массив настроек или «id» зарегистрированной формы.

  • id
    (String) Уникальный идентификатор формы. По умолчанию — «acf-form».

    'id' => 'acf-form',
  • post_id
    (Integer | String) ID записи, используемый для определения отображаемых полей, источника загрузки данных и места сохранения данных. По умолчанию используется ID текущей записи. Также можно передать значение «new_post», чтобы при отправке формы создать новую запись.

    'post_id' => false,
  • new_post
    (Array) Если для указанного выше параметра задано значение «new_post», этот параметр используется для создания записи. Доступные параметры см. в документации wp_insert_post.

    'new_post' => false,
  • field_groups
    (Array) Массив ID или ключей групп полей, переопределяющий поля, отображаемые в этой форме.

    'field_groups' => false,
  • fields
    (Array) Массив ID или ключей полей, переопределяющий поля, отображаемые в этой форме.

    'fields' => false,
  • post_title
    (Boolean) Показывать ли текстовое поле заголовка записи. По умолчанию — false.

    'post_title' => false,
  • post_content
    (Boolean) Показывать ли поле редактора содержимого записи. По умолчанию — false.

    'post_content' => false,
  • form
    (Boolean) Создавать ли элемент form. Полезно при добавлении формы в уже существующую форму. По умолчанию — true.

    'form' => true,
  • form_attributes
    (Array) Массив HTML-атрибутов элемента формы.

    'form_attributes' => array(),
  • return
    (String) URL, на который выполняется перенаправление после отправки формы. По умолчанию используется текущий URL с GET-параметром «?updated=true».
    Специальная подстановка «%post_url%» будет заменена на постоянную ссылку записи.
    Специальная подстановка «%post_id%» будет заменена на ID записи.

    'return' => '',
  • html_before_fields
    (String) Дополнительный HTML-код, добавляемый перед полями.

    'html_before_fields' => '',
  • html_after_fields
    (String) Дополнительный HTML-код, добавляемый после полей.

    'html_after_fields' => '',
  • submit_value
    (String) Текст, отображаемый на кнопке отправки.

    'submit_value' => __("Обновить", 'acf'),
  • updated_message
    (String) Сообщение, отображаемое над формой после перенаправления. Для отключения сообщения можно задать значение false.

    'updated_message' => __("Запись обновлена", 'acf'),
  • label_placement
    (String) Определяет расположение подписей полей относительно самих полей. По умолчанию — «top».
    Доступные значения: «top» (над полями) или «left» (слева от полей).

    'label_placement' => 'top',
  • instruction_placement
    (String) Определяет расположение инструкций полей относительно самих полей. По умолчанию — «label».
    Доступные значения: «label» (под подписями) или «field» (под полями).

    'instruction_placement' => 'label',
  • field_el
    (String) Определяет элемент, используемый для обёртки поля. По умолчанию — «div».
    Доступные значения: «div», «tr», «td», «ul», «ol», «dl».

    'field_el' => 'div',
  • uploader
    (String) Определяет, использовать ли загрузчик WordPress или обычное поле ввода для полей изображений и файлов. По умолчанию — «wp».
    Доступные значения: «wp» или «basic».

    'uploader' => 'wp',
  • honeypot
    (Boolean) Добавлять ли скрытое поле ввода для обнаружения отправки формы не человеком. По умолчанию — true.

    'honeypot' => true,
  • html_updated_message
    (String) HTML-код, используемый для вывода обновлённого сообщения.

    'html_updated_message'  => '<div id="message" class="updated"><p>%s</p></div>',
  • html_submit_button
    (String) HTML-код, используемый для вывода кнопки отправки.

    'html_submit_button'  => '<input type="submit" class="acf-button button button-primary button-large" value="%s" />',
  • html_submit_spinner
    (String) HTML-код, используемый для вывода индикатора загрузки кнопки отправки.

    'html_submit_spinner' => '<span class="acf-spinner"></span>',
  • kses
    (Boolean) Очищать ли все данные $_POST с помощью функции wp_kses_post(). По умолчанию — true.

    'kses' => true

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

  • kses добавлен в версии 5.6.5.
  • uploader добавлен в версии 5.2.4.
  • honeypot добавлен в версии 5.3.4.
  • html_updated_message, html_submit_button и html_submit_spinner добавлены в версии 5.5.10.

Примеры

Базовое использование

В этом примере показано, как зарегистрировать форму в файле functions.php, а затем вывести её в шаблоне страницы.

functions.php

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

    // Проверяем существование функции.
    if( function_exists('acf_register_form') ) {

        // Регистрируем форму.
        acf_register_form(array(
            'id'       => 'new-event',
            'post_id'  => 'new_post',
            'new_post' => array(
                'post_type'   => 'event',
                'post_status' => 'publish'
            ),
            'post_title'  => true,
            'post_content'=> true,
        ));
    }
}

page-new-event.php

<?php acf_form_head(); ?>
<?php get_header(); ?>

<div id="primary" class="content-area">
    <div id="content">
        <?php acf_form('new-event'); ?>
    </div><!-- #content -->
</div><!-- #primary -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>

Обновлено: 30.09.2026