У меня проблемы с возвратом значений, введенных на моем форма переднего конца создать новый пост в WordPress с плагином Advanced Custom Fields. Я создал новую группу полей, и форма отлично отображается на внешнем интерфейсе, когда я отправляю форму, она отправляется без заголовка, даже если у меня есть заголовок в поле заголовка. Это текстовое поле, которое у меня есть в моей группе полей с названием ‘title’.
Согласно документации, я должен быть в состоянии передать переменную $ _POST, но мне трудно заставить ее работать или найти переменную $ _POST.
Вот мой шаблон страницы, который показывает форму, создает сообщение, но у сообщения нет заголовка. Итак, в двух словах, я не уверен, как получить значения для использования в wp_insert_post:
<?php acf_form_head(); ?>
<?php get_header(); ?>
<?php
function my_pre_save_post( $post_id )
{
// check if this is to be a new post
if( $post_id != 'new' )
{
return $post_id;
}
// Create a new post
$post = array(
'post_status' => 'publish' ,
'post_title' => $_POST['fields']['title'] ,
'post_type' => 'custom_gallery' ,
);
// insert the post
$post_id = wp_insert_post( $post );
// update $_POST['return']
$_POST['return'] = add_query_arg( array('post_id' => $post_id), $_POST['return'] );
// return the new ID
return $post_id;
}
add_filter('acf/pre_save_post' , 'my_pre_save_post' );
?>
<div id="content" class="clearfix row">
<div id="main" class="col-sm-12 clearfix" role="main">
<?php
acf_form(array(
'field_groups' => array('31056'),
'post_id' => 'new',
'submit_value' => 'Submit Project'
)); ?>
</div> <!-- end #main -->
<?php //get_sidebar(); // sidebar 1 ?>
</div> <!-- end #content -->
<?php get_footer(); ?>
Попробуйте использовать это:
https://wordpress.org/plugins/forms-actions
https://wordpress.org/plugins/acf-frontend-display
Формы действий процессов, форм, которые вы отправляете и выполняете действия.
Других решений пока нет …