正在保存插件设置-错误:未找到选项页面

时间:2015-07-04 作者:mallaudin

我已经为我的插件设置创建了一个表单,并将表单的action属性设置为“options.php”,但当我提交表单时,我得到了“ERROR:options page not found”

add_action(\'admin_menu\', \'create_menu\');

function create_menu(){
    // add menu page
    add_menu_page(
        \'Basic Plugin Menu Page\', 
        \'Bp Menu\', 
        \'manage_options\', 
        \'bp_menu\', 
        \'bp_menu_cb\', 
        plugins_url(\'images/wordpress.png\', __FILE__),
        76 );
    // add submenu page
    add_submenu_page(
        \'bp_menu\', 
        \'Besic Plugin Submenu\', 
        \'Options\', 
        \'manage_options\', 
        \'bp_options\', 
        \'bp_options_cb\' );
    add_action(\'admin_init\', \'bp_register_settings_cb\');
} // end add_menu
function bp_register_settings_cb(){
    // - register_setting( $option_group, $option_name, $sanitize_callback );
    register_setting(\'bp-settings-group\', \'bp_options\', \'bp_options_sanitize\');
} // enb bp_register_settings_cb

function bp_options_sanitize($input){
    $input[\'name\'] = sanitize_text_field($input[\'name\']);
    $input[\'email\'] = sanitize_email($input[\'email\']);
    $input[\'url\'] = esc_url($input[\'url\']);
    return $input;
} // end bp_options_sanitize

function bp_menu_cb(){ ?>
    <div id="wrap">
        <h2>Basic Plugin Settings</h2>
        <form method="POST" action="http://localhost/blogger.allaudin/wp-admin/options.php">
            <?php settings_fields(\'bp_settings_group\'); ?>
            <?php $bp_options = get_option(\'bp_options\') ?>
            <table class="form-table">
                <tr valign="top">
                    <th scope="row">Name</th>
                    <td>
                        <input type="text" name="bp_options[name]" value="<?php echo esc_attr($bp_options[\'name\']) ?>" />
                    </td>
                </tr>
                <tr valign="top">
                    <th scope="row">Email</th>
                    <td>
                        <input type="text" name="bp_options[email]" value="<?php echo esc_attr($bp_options[\'email\']); ?>" />
                    </td>
                </tr>

                <tr valign="top">
                    <th scope="row">URL</th>
                    <td>
                        <input type="text" name="bp_options[url]" value="<?php echo esc_url($bp_options[\'url\']) ?>" />
                    </td>
                </tr>
            </table>
            <p class="submit">
                <input type="submit" class="button-primary" value="Save Changes" />
            </p>
        </form>
    </div>
<?php } // end bp_settings_page

1 个回复
SO网友:Bikash Waiba

settings\\u字段(“bp\\U settings\\u group”);

bp_settings_group 应更改为bp-settings-group 匹配。

settings_fields( $option_group )

$option_group 应与中使用的组名匹配register_setting() i、 e类bp-settings-group.

检查法典here.

结束

相关推荐

Wp-login.php只是刷新表单域

我最近将一个客户博客从一个服务器移动到了另一个服务器。从表面上看,一切似乎都很好——博客正在运行,你可以查看没有问题的条目。我们遇到的问题是管理员登录页面。当您输入用户名和密码时,它只会刷新页面。不会显示任何错误消息或提示。我遵循了本页上的提示:http://codex.wordpress.org/Login_TroubleCookies are enabled, tried via several browsers Plugins folder has been renamed to plugi