REGISTER_SETTING清理回调$INPUT为空

时间:2016-07-05 作者:dhuyvetter

我正在努力让我的设置页面保存我的选项。我已经把它正确显示出来了,它会启动消毒功能

    register_setting(
        \'my_options\', // Option group
        \'my_settings\', // Option name
        array($this, \'sanitize\') // Sanitize
    );
在sanitize函数上运行调试器时,$input为null:

public function sanitize($input)
{
    $new_input = array();

    $new_input = $input;
    //Sanitize the input actually

    return $new_input;
}
表单本身的名称如下:

<form id="my-admin-form" method="post" action="options.php">
    <!-- Submission Notices -->
    <div class="status-box notice notice-info" style="display: none;"></div>
    <?php
    settings_fields(\'my_options\');
    do_settings_sections(\'my_section\');
    submit_button();
    ?>
</form>

2 个回复
SO网友:dhuyvetter

结果证明它与nonce相关:表单没有nonce。通过添加wp_nonce_field 到窗体。

SO网友:Mark Tierney

即使在添加了nonce之后,我也遇到了类似的问题。

我犯的错误是输入名称必须是数组,例如:

<input id="my_option[key]" type="text" name="my_option[key]" value="<?php !empty(my_option[key]) ? my_option[key] : NULL; ?>">

相关推荐