web-dev-qa-db-fra.com

Options du plugin non enregistrées ou créées

Avoir beaucoup de mal avec cette page de configuration. J'ai suivi la documentation (qui était rare) et fait un peu de recherche d'aide.

Mon problème est simple, mes options de configuration ne sont ni créées ni sauvegardées. Toute aide serait très appréciée!

Voici la configuration générale:

    public $view;

    function __construct()
    {
        $this->view = new My_View;
        // hook the settings menu
        add_action('admin_menu', array($this, 'index'));
        // hook the settings' settings
        add_action('admin_init', array($this, 'registerSettings'));
    }
    /**
     * setup the settings menu Page Title, Menu Title, Permissions, Menu Slug, View to render
     */
    public function index()
    {
        add_options_page("My Settings", "My menu", "manage_options", "My_Settings", array($this->view, 'index_view'));
    }

    public function registerSettings()
    {
        //options, name of option, validate function
        register_setting('my_general_settings', 'my_general_settings');
    }

ensuite, le formulaire:

public function index_view()
{ ?>

    <div class="wrap" style="display:block;">
        <h2>Settings</h2>
        <hr>

        <form method="POST" action="">
            <h3>General Settings</h3>

            <?php settings_fields('my_general_settings'); ?>
            <?php $settings = get_option('my_general_settings') ?>

            <label for="my_settings[publisher_id]">Enter your Publisher ID:</label>
            <input type="text" name="my_general_settings[publisher_id]" value="<?php echo $settings['publisher_id']?>" />
            <input type="submit" value="Save Changes" />
            <p>Forgot your ID? <a href="">Click here</a></p>
        </form>
    </div>
<?php }
1
user4607

L'action de formulaire doit pointer sur options.php, qui est le gestionnaire intégré de WordPress pour toutes les pages de paramètres:

<form method="POST" action="options.php">

Ceci est documenté de manière assez détaillée sur la page Settings API du Codex .

3
John Blackbourn