it-swarm.com.de

Wie kann ich mithilfe der Einstellungs-API einer Option mehrere Werte hinzufügen?

Ich versuche, einer mit der Einstellungs-API erstellten Option zusätzliche Werte hinzuzufügen/zu aktualisieren. Ich versuche dies mit meiner Validierungs-Rückruffunktion zu tun, komme aber nicht sehr weit. Hier ist mein Code:

function tccl_settings_option_validate( $input ) {
    add_option( 'tccl_settings_option', $input );
}

Dies verursacht einen ziemlich großen Fehler. Wie soll ich das machen?

Ich möchte den Validierungs-Callback verwenden, um dem Options-Array Werte hinzuzufügen, ohne es zu überschreiben.

1
jnthnclrk

Holen Sie sich die Option, ändern Sie nur die Werte, die Sie ändern müssen, und geben Sie dann die Ergebnisse zurück.

function tccl_settings_option_validate( $input ) {
    $options = get_option('tccl_settings_option');
    // modify $options using data from $input as needed
    return $options;
}
2
Otto

In Ihrer Funktion tccl_settings_option_validate müssen Sie:

  • holen Sie sich ein Array aller vorhandenen Optionen.
  • aktualisiere nur die geänderten.
  • gib dieses Array zurück.

    so etwas wie:

    function tccl_settings_option_validate( $input ) {
    
    //do regular validation stuff
    //...
    //...
    
    //get all options
    $options = get_option(THEMENAME . '_settings');
    //update only the neede options
    foreach ($input as $key => $value){
        $options[$key] = $value;
    }
    //return all options
    return $options;
    }
    
3
Bainternet

sie müssen die Option nicht speichern, das ist für Sie erledigt. Ihre Validierungsfunktion sollte die Eingabe dann return etwas überprüfen.

function tccl_settings_option_validate( $input ) {
    // do some checking/formatting/whatever of $input
    // and then
    return $input;
}
0
Milo