ACF自定义字段和Wordpress木材前端表单
问题描述:
我试图在前端创建自定义表单,以便登录访问者可以发布自己的内容。ACF自定义字段和Wordpress木材前端表单
使用ACF pro和木材。
在我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();
在物质上,什么是区别?
感谢, 罗布
答
这可能有点晚,但我设法通过使用他们最近添加的参数来解决此问题。我发现这个谷歌搜索它,所以对于未来的寻求者,这可能会派上用场。
所以,args数组中,添加以下内容:
$args = array(
'echo' => false,
);
答
的问题是,acf_form
在PHP文件调用时,也呼应。你可以寻找一个替代的功能(就是有什么样get_acf_form
返回HTML,但不回应?),或者使用木材的输出缓冲包装:
$contect['vf_form'] = Timber\Helper::ob_function('acf_form', $new_post);
...这将数据存储在vf_form
属性,但不抑制它回声,直到在Twig中调用
感谢。我看了一下,没有get_acf_form或类似的东西 - 所以尝试了缓冲包装。不幸的是,这似乎没有将任何ACF表单呈现给页面。我检查了我的控制台,并且没有错误 - 也没有出现所有acf stylesheet/javascript东西 – Rob