在wordpress中的插件的管理面板中创建设置选项

时间:2016-09-03 13:24:13

标签: wordpress

我正在尝试创建一个插件,因为我想在admin部分创建一个菜单项。它将打开一个页面,我想使用表单将选项添加到数据库中。

如果有人有代码,请提供。

提前致谢。

1 个答案:

答案 0 :(得分:1)

请参阅https://codex.wordpress.org/Creating_Options_Pages

上的文档

"See it all together"

下有多个代码示例

以下示例使用新的Settings API创建和保存插件选项:

<?php
// create custom plugin settings menu
add_action('admin_menu', 'my_cool_plugin_create_menu');

function my_cool_plugin_create_menu() {
    //create new top-level menu     
    add_menu_page(
        'My Cool Plugin Settings',
        'Cool Settings',
        'administrator',
        __FILE__,
        'my_cool_plugin_settings_page',
        plugins_url('/images/icon.png', __FILE__)
    );  
    //call register settings function   
    add_action( 'admin_init', 'register_my_cool_plugin_settings' );
}

function register_my_cool_plugin_settings() {   
    //register our settings     
    register_setting( 'my-cool-plugin-settings-group', 'new_option_name' );     
    register_setting( 'my-cool-plugin-settings-group', 'some_other_option' );   
    register_setting( 'my-cool-plugin-settings-group', 'option_etc' ); 
}

function my_cool_plugin_settings_page() { ?>
<div class="wrap">
    <h1>Your Plugin Name</h1>
    <form method="post" action="options.php">
        <?php settings_fields( 'my-cool-plugin-settings-group' ); ?>
        <?php do_settings_sections( 'my-cool-plugin-settings-group' ); ?>
        <table class="form-table">
            <tr valign="top">
                <th scope="row">New Option Name</th>
                <td><input type="text" name="new_option_name" value="<?php echo esc_attr( get_option('new_option_name') ); ?>" /></td>
            </tr>
            <tr valign="top">
                <th scope="row">Some Other Option</th>
                <td><input type="text" name="some_other_option" value="<?php echo esc_attr( get_option('some_other_option') ); ?>" /></td>
            </tr>
            <tr valign="top">
                <th scope="row">Options, Etc.</th>
                <td><input type="text" name="option_etc" value="<?php echo esc_attr( get_option('option_etc') ); ?>" /></td>
            </tr>
        </table>
        <?php submit_button(); ?>
    </form>
</div>