Kann Optionen zu db nicht hinzufügen

Ich versuche, eine wirklich einfache Optionsseite für meine WordPress-Site zu erstellen, die nur eine Option enthält – eine Conversion-Rate für eine Währung. Ich habe den folgenden Code:

add_action('admin_init', 'currency_options_set'); add_action( 'admin_menu', 'admin_menu' ); function admin_menu () { add_options_page( 'Currency Options','Currency Options','manage_options','options_currency', 'settings_page' ); } function currency_options_set(){ register_setting( 'currency_options_group', 'currency_options' ); } function settings_page () { $default_options = array( 'currency_eur' => "1.1" ); $options = get_option('currency_options', $default_options); ?> 
EUR: <input type="text" name="currency_options_group[currency_eur]" size="40" value="" />

<input type="submit" class="button-primary" value="" />

<?php }

Die neue Optionsseite zeigt und ich kann das Formular sehen, aber wenn ich es abschicke, werden keine Optionen in der Tabelle wp_options gespeichert. Was fehlt mir hier?

Solutions Collecting From Web of "Kann Optionen zu db nicht hinzufügen"

Habe gerade deinen Code getestet und einen Fehler im Eingabe-Namen gefunden. Ändern Sie die Option currency_options_group in currency_options , damit es funktioniert. Der modifizierte Code:

 add_action('admin_init', 'currency_options_set'); add_action( 'admin_menu', 'admin_menu' ); function admin_menu () { add_options_page( 'Currency Options','Currency Options','manage_options','options_currency', 'settings_page' ); } function currency_options_set(){ register_setting( 'currency_options_group', 'currency_options' ); } function settings_page () { $default_options = array( 'currency_eur' => "1.1" ); $options = get_option('currency_options', $default_options); ?> 
< ?php settings_fields("currency_options_group"); ?>
EUR: " />

< ?php }

Sie haben eine kleine Verwechslung im -Feld Ihrer Options-Seite.

In Ihrem Fall sollte der name der Eingabe der Name der Option sein, die Sie speichern möchten, nicht ein Array der options_group , und die Ausgabe sollte nur die option , nicht ein $array options_group der options_group .

Die Optionen wären wie folgt:

 $default_options = '1.1'; $options = get_option('currency_options', $default_options); 

Deine korrekte wäre das:

  

WordPress erkennt automatisch, dass currency_options Teil der currency_options_group (über register_setting ) ist, und Sie müssen es hier nicht verwenden.

Die options_group wird in der Einstellungs-API verwendet, damit Sie automatisch Seiten mit wp-admin Einstellungen generieren können, indem Sie Ihre Einstellungen registrieren und einige Callbacks zur Steuerung der Ausgabe verwenden.

Eine einfache Einstellung ist einfacher und schneller zu machen.