将回显的WP函数赋值给PHP变量

时间:2015-02-16 作者:myol

我正在创建设置页面。如果我使用默认示例,那么效果很好。

<form method="post" action="options.php">
    <?php if(isset( $_GET[\'settings-updated\'])) { ?>
    <div class="updated">
        <p>Settings updated successfully</p>
    </div>
    <?php } ?>

    <textarea name="setting_1"><?php echo get_option(\'setting_1\'); ?></textarea>

    <?php 

    settings_fields(\'my_settings\');
    do_settings_sections(\'my_settings\');

    submit_button(); 

    ?>
</form>
然而,我正在使用PHP更容易地操纵HTML(复杂功能的开始),所以我改变了submit_button()get_submit_button() 以便将返回值赋给变量。

$output .= \'</div>\'
$output .= get_submit_button();
$output .= \'</form>\';
这正如预期的那样。然而,我似乎找不到类似的函数settings_fields(\'my_settings\')do_settings_sections(\'my_settings\').

这些功能echo the output 而不是返回输出。这意味着这些函数在我用PHP构建的表单之外响应它们的输出。

如何从这些函数中捕获回显输出并将其分配给PHP中的变量?

1 个回复
最合适的回答,由SO网友:myol 整理而成

找到了,我想这是在另一个答案中向我建议的。

$output .= ...

ob_start();
settings_fields(\'my_settings\');
do_settings_sections(\'my_settings\');
$output .= ob_get_clean();

结束