Обзор
acf_form_head() используется для обработки, проверки и сохранения данных из форм, созданных с помощью функций acf_form(). Эта функция также вставляет в очередь все скрипты и стили, связанные с ACF, для для корректного отображения. Эта функция должна быть вставлена перед HTML кодом, предпочтительно перед get_header(); в вашем файле темы.
Параметры
<?php acf_form_head(); ?>
Примеры
В этом примере показана стандартная форма acf acf_form() для редактирования текущего поста.
<?php acf_form_head(); ?>
<?php get_header(); ?>
<div id="primary" class="content-area">
<div id="content" class="site-content" role="main">
<?php acf_form(); ?>
</div><!-- #content -->
</div><!-- #primary -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>
События и фильтры
В этом разделе содержаться события и фильтры для управления процессом сохранения данных.
acf/pre_submit_form
Данный фильтр запускается, когда форма была отправлена и прошла валидацию. Используйте этот фильтр для изменения или использования формы $form перед отправкой $_POST данных. Добавлено в версии 5.5.10
function my_acf_pre_submit_form( $form ) {
// создаем пост, используя $form['new_post']
// изменяем $form['redirect']
// возвращаем форму
return $form;
}
add_filter('acf/pre_submit_form', 'my_acf_pre_submit_form', 10, 1);
acf/pre_save_post
Этот фильтр запускается, когда форма отправлена. Этот фильтр запускается после «acf/pre_submit_form». Используйте этот фильтр для изменения или использования $post_id и $form перед обработкой $_POST данных. Добавлено в версии 4.1.6
function my_acf_pre_save_post( $post_id, $form ) {
// создаем пост, используя $form и обновляем $post_id
// return
return $post_id;
}
add_filter('acf/pre_save_post', 'my_acf_pre_save_post', 10, 2);
acf/save_post
Данное событие выполняется, когда ACF сохраняет данные произвольного поля в пост. Эта функция работает не только с функцией acf_form_head(), а используется во всем плагине ACF. Для получения дополнительной информации смотрите экшн acf/save_post.
function my_acf_save_post( $post_id ) {
// получаем новое значение
$value = get_field('my_field', $post_id);
// делаем что-то
}
add_action('acf/save_post', 'my_acf_save_post', 20);
acf/submit_form
Это событие выполняется после того, как ACF обработал и сохранил данные acf_form(), после обработки $_POST данных. Используйте это событие для выполнения дополнительных инструкций до того, как параметр «return» совершит редирект браузера. Добавлено в версии 5.5.10
function my_acf_submit_form( $form, $post_id ) {
// получаем новое значение
$value = get_field('my_field', $post_id);
// редирект
wp_redirect( 'http://www.website.com/' . $value );
exit;
}
add_action('acf/submit_form', 'my_acf_submit_form', 10, 2);
Похожие
- Гайды: Создание frontend формы
- Гайды: Использование acf_form для создания нового поста
- Функции: acf_register_form()