webentwicklung-frage-antwort-db.com.de

Was ist der Unterschied zwischen Optionen und Einstellungen?

Und welches soll ich verwenden?

Was ist der Unterschied zwischen Options API und Setings API ?

Ich habe ein Thema mit über 100 Admin-Optionen. Wie soll ich sie registrieren und speichern? In diesem Moment verwende ich Options API , aber ich bin nicht sehr zufrieden damit. Jede einzelne Option wird separat registriert, sodass viele Datenbankabfragen erstellt werden.

Ich sehe im Moment drei Möglichkeiten zum Speichern von WordPress-Optionen/-Einstellungen:

1. Options API - der alte (der schlimmste?) Weg.

(Ich benutze diesen schon)

<form method="post" action="options.php">
<?php wp_nonce_field('update-options'); ?>        

// all the inputs

<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="option1,option2,option3,..." />
<p class="submit">
<input type="submit" value="<?php _e('Save Changes') ?>" />
</p>
</form>

Und dann im Frontend:

echo get_option('option1'); 

Sieht hässlich aus und ich denke nicht, dass dies der richtige Weg ist, um eine große Anzahl von Optionen zu speichern (ich würde sie gerne irgendwie gruppieren).

2. Options API - 1 Option als großes Array.

Ich bin mir hier nicht sicher, wie ich dieses Array mithilfe von HTML-Formularen aktualisieren soll. Ich glaube, es sollte so gehen:

$opt['option1'] = foo
$opt['option2'] = foo
$opt['option3'] = bar

update_option('theme_settings',$opt);

Und dann im Frontend:

$settings = get_option('theme_settings');
echo $settings['option1']; 
echo $settings['option2']; 
echo $settings['option3']; 

Ich habe gehört, dass die Anzahl der Abfragen wirklich abnimmt, und ich habe sie alle als eine Option. Ich würde gerne dieses verwenden, aber wie ich oben erwähnte, bin ich nicht sicher, wie ich diese Reihe von Optionen im Wordpress-Admin-Formular aktualisieren soll. Ich vermute: <input type="hidden" name="theme_settings" value="option1,option2,option3,..." /> überschreibt das Array, anstatt neue Elemente hinzuzufügen?

3. Settings API - der neue Weg.

Benötigt viel zusätzlichen Code:

function register_theme_settings() {
    //register our settings   
    register_setting( 'theme-settings', 'option1' );     
    register_setting( 'theme-settings', 'option2' );     
    register_setting( 'theme-settings', 'option3' );     
    register_setting( 'theme-settings', 'option4' );     
    register_setting( 'theme-settings', 'option5' );     
    // imagine this for 100 and more options    
};

Und ich bin nicht sicher, was ist der Unterschied zwischen dieser und der Methode mit einer Option als Array?

tl; dr Wie soll ich den Speicher für meine Designeinstellungen projizieren, damit er schnell funktioniert und gespeichert alle Optionen/Einstellungen an einem Ort) ist? also kann ich sie zum Beispiel mit einer einfachen Funktion ausgeben (ja, ich möchte das schlecht machen, aber ich habe keine Ahnung, wie ich das mit dieser Einstellungs-API machen soll). Die zweite Methode sieht bisher am besten aus.

12
Wordpressor

Die Options-API ist in erster Linie eine Datenbank-API, mit der Sie auf einfache Weise Werte in der Optionstabelle der Datenbank abrufen und speichern können.

Die Einstellungs-API ist eine Schnittstellen-API. Sie können Einstellungsbildschirme so erstellen, dass sie sich an zukünftige Änderungen der WordPress-Benutzeroberfläche anpassen, sowie die Sicherheit (Nonces und Whitelisting und Validierung usw.) automatisch und einfacher handhaben als das Rolling Ihres eigenen Codes.

Weitere Informationen zur Einstellungs-API: http://ottopress.com/2009/wordpress-settings-api-tutorial/

11
Otto