在WordPress插件中使用zebra_form出现错误

3
我正在尝试在我正在开发的WordPress插件的元框中使用Zebra_form。为了简化,我将代码减少到以下内容:
public function render_metabox( $post ) {
    // instantiate a Zebra_Form object
    $form = new Zebra_Form('form');

    // the label for the "email" field
    $form->add('label', 'label_email', 'email', 'Email');

    // add the "email" field
    $obj = $form->add('text', 'email', '', array('autocomplete' => 'off'));

    // auto generate output, labels above form elements
    $form->render();
}

当我尝试运行它时,出现以下错误:
警告:无法修改头信息 - 头已经被发送 (输出开始于 /Users/dp/Documents/SitesDev/wordpress/wp-admin/includes/template.php:1877) ,位于 /Users/dp/Documents/SitesDev/wordpress/wp-content/plugins/my-plugin/lib/Zebra/Zebra_Form.php 的第4052行
致命错误:该库尝试将CSRF令牌存储在cookie中,但由于已经向浏览器发送了输出,因此无法执行。您应该在实例化库之前启动会话(建议),在实例化库之前不要向浏览器发送任何输出(包括和标签以及任何空格),或者在php.ini中打开输出缓冲区。位于 /Users/dp/Documents/SitesDev/wordpress/wp-content/plugins/my-plugin/lib/Zebra/Zebra_Form.php 的第4052行
有什么线索吗?或者Zebra_Form不能以这种方式使用吗?

一个肉盒子?那是什么? - McNab
意思是元框... :) 已经更正。 - Daniel
哎呀,我在谷歌上搜索看看是否有我没听说过的新东西。哈哈,在问题的背景下,我应该意识到了。 :) - McNab
2个回答

1

我知道你发表这个问题已经有一段时间了,但是这是我找到的解决方法: 我遇到了和你一样的错误,所以我查看了Zebra_Form.php,并注释掉了4041行到4068行。 之后它就起作用了。


0

你必须放置

session_start();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接