it-swarm.com.de

Wordpress-Designoptionen und Standardwert für die Serialisierung von Daten einfügen

Wie füge ich Standardwerte für Theme-Optionen hinzu? Derzeit verwende ich die Basisoption von dieser Site

Das Beispiel speichert den Optionswert in serialize in der Datenbank. Wenn wir das Thema aktivieren, ist beim ersten Mal kein Wert in der Datenbank vorhanden, bis wir auf die Schaltfläche Änderungen speichern klicken.

Jetzt möchte ich einen Standardwert hinzufügen, wenn das Thema so etwas aktiviert.

option_id   blog_id     option_name     option_value                                              autoload 
152           0           theme_data      a:16:{s:12:"html_doctype";s:1:"1";s:14:"header_fav...     yes

Oder wie kann ich die aktuelle Beispieloption optimieren, um sie nicht in der Datenbank zu serialisieren?

option_id   blog_id     option_name     option_value    autoload 
152           0           html_doctype    1               yes

Gib mir Bescheid.

1
wow

Durchlaufen Sie Ihre Auswahl an Optionen und generieren Sie daraus eine Reihe von Standardeinstellungen.

Stellen wir uns vor, Ihr Array sieht ungefähr so ​​aus (aber offensichtlich größer).

$your_options = array(  
    array( 
        'name' => 'option-one',
        'desc' => 'Option one description',
        'type' => 'text',
        'std'  => 'default_value'
    ),
    ..and so on.. for each option..
);

Überprüfen Sie zuerst, ob Sie Optionen haben. Wenn nicht, ist dies die erste Installation, damit Sie die Standardeinstellungen festlegen können.

$my_var_that_holds_options = get_option( 'your_theme_options_name' );
if( !$my_var_that_holds_options ) {
    // Do code to setup defaults
}

Der Code zum Einrichten der Standardeinstellungen ist natürlich dort, wo ich // Do code to setup defaults abgelegt habe.

Erstellen Sie zunächst ein Array, das die Standardeinstellungen enthält, und durchlaufen Sie das Optionsarray, um das neue Standardarray zu erstellen.

$defaults = array();
foreach( $your_options_var as $option_data ) {
    $defaults[$option_data['name']] = $option_data['std'];
}

Am Ende haben Sie eine Reihe von Optionsnamen und Standardwerten, die Sie dann an die Datenbank senden können.

update_option( 'your_theme_options_name', $defaults );

Wenn Sie die Optionen durchlaufen müssen, um die markierten Kästchen usw. zu setzen, rufen Sie einfach get_option erneut auf, nachdem Sie die Standardeinstellungen gespeichert haben.

$my_var_that_holds_options = get_option( 'your_theme_options_name' );

Oder verwenden Sie das Standardarray.

$my_var_that_holds_options = $defaults;

Ich musste mit dem Beispiel ziemlich allgemein sein, da der Ansatz abhängig von der Struktur Ihres Options-Arrays unterschiedlich sein wird.

Der wichtige Faktor hierbei ist, sicherzustellen, dass Ihr Array von Optionen einen "Standard" -Wert (im Beispiel "std") für jede Option enthält, ansonsten haben Sie nichts, aus dem Sie Ihre Standardwerte bilden können.

Ich habe einige Male Themen konvertiert, um dies zu tun. Wenn Sie Probleme haben, dies zu implementieren, können Sie Ihre Datei mit dem Options-Array in Pastebin einfügen, und ich werde einen Blick darauf werfen.

1
t31os