2017-02-10 4 views
1

Я пытаюсь создать пользовательскую форму на лицевой стороне, чтобы зарегистрированные пользователи могли публиковать собственный контент.Пользовательские поля ACF и формы переднего конца Wordpress Timber

Использование ACF pro и Timber.

В моем файле page.php У меня есть

$new_post = array(
'post_id' => 'new_post', 
'post_title' => true, 
'post_content' => true, 
'field_groups' => array(26), // Create post field group ID(s) 
'form' => true, 
'return' => '%post_url%', // Redirect to new post url 
'html_before_fields' => '<div class="foobar">', 
'html_after_fields' => '</div>', 
'new_post' => array(
    'post_status' => 'draft', 
    'post_type' => 'vlog' 
), 
'submit_value' => 'Create Post' 
); 

$context['vlogform'] = acf_form($new_post); 

и в page.twig, я поместил

{{vlogform}} 

форма делает - но его застряли в глупом месте, не там, где я хочу это. Его застрял над элементом html ...

Любые указатели?

Спасибо, Роб

** Редактировать **

Это не работает

$context['vf_form'] = Timber\Helper::ob_function('acf_form', $new_post); 

но это делает ...

ob_start(); 

acf_Form($new_post); 

$context['vf_form'] = ob_get_clean(); 

Материально, что разница?

Спасибо, Роб

ответ

1

Это может быть немного поздно, но мне удалось исправить эту проблему, используя аргумент, который они добавили недавно. Я нашел для него эту игру, поэтому для будущих ищущих это может пригодиться.

Так, в массиве арг, добавьте следующее:

$args = array(

    'echo' => false, 

); 
0

Проблема заключается в том, что acf_form также вторя при вызове в файле PHP. Вы можете либо искать альтернативную функцию (там что-то вроде get_acf_form, который возвращает HTML, но не эхо?) ИЛИ использовать выходной буфер обертку лесоматериалов:

$contect['vf_form'] = Timber\Helper::ob_function('acf_form', $new_post); 

... это будет хранить данные в vf_form атрибут, но не подавлять его от эха до вызова в Twig

+0

Спасибо. Я посмотрел и нет get_acf_form или аналогичного - так попробовал буферную оболочку. К сожалению, это не означает, что какая-либо форма ACF на странице. Я проверил мою консоль, и ошибок нет, равно как и все элементы таблицы стилей/javascript acf – Rob

Смежные вопросы