web-dev-qa-db-fra.com

Les options du plugin ne seront pas enregistrées dans la base de données

Je ne suis pas sûr de ce qui se passe ici, car cela a fonctionné dans un autre plugin que j'ai créé. J'essaie simplement de stocker des données dans la table d'options. Voici le code que j'utilise:

function on_myplugin_start () {         
register_setting('first_tab_options', 'first_tab_items');
}

add_action('admin_init','on_myplugin_start');

Voici le formulaire qui est soumis:

<form action="options.php" method="post" >
<?php
 settings_fields( 'first_tab_options' );
 ?>
<input type="text" name="some_name" value="">
<input type="submit" value="Save Settings" name="submit" class="button-primary">
</form>

Ca y est .. quand je regarde le code source, tout semble aller bien ... il y a tous les champs cachés mis par l'API des paramètres ... mais quand je mets une valeur et clique sur submit (et le message dit que l'enregistrement a été enregistré avec succès, rien se trouve dans le champ de base de données créé avec succès (first_tab_items).

Je vous serais reconnaissant de toute aide sur ce .... merci

4
Allen

... car votre nom d’entrée (POST) doit correspondre à celui de votre appel register_setting:

register_setting( 'first_tab_options', 'first_tab_items' );
....
<input type="text" name="first_tab_items"...

Autrement, comment WP sait-il que some_name dans POST contient vos données d'option? ;)

9
TheDeadMedic

Ajout à la réponse de TheDeadMedic: si vous souhaitez enregistrer un seul paramètre pour un formulaire entier, comme vous l'avez suggéré, vous pouvez utiliser un tableau:

<form action="options.php" method="post" >
<?php
    settings_fields( 'first_tab_options' );
?>
<input type="text" name="first_tab_items[some_name]" value="">
<input type="text" name="first_tab_items[some_name2]" value="">
<input type="submit" value="Save Settings" name="submit" class="button-primary">
</form>

Et inscrivez-vous:

register_setting('first_tab_options', 'first_tab_items');
0
Ynhockey