Speichern von Optionen in einem Shortcode

Ich erstelle ein WordPress-Plugin. Ich möchte einen einzelnen Shortcode erstellen, der die Ausgabe basierend auf den Einstellungen ändert, die vom Benutzer auf der Seite mit den Admin-Einstellungen geändert wurden.

Also für den Anfang habe ich etwas wie folgt:

add_shortcode( 'my_shortcode', 'my_shortcode'); function my_shortcode($atts) { $atts = shortcode_atts ( array ( 'display' => get_option('setting_1'), 'toolbar' => get_option('setting_2'), 'branding' => get_option('setting_3') ), $atts); } 

Was muss ich als nächstes tun, um diese Einstellungen in einem einzigen Shortcode zu speichern, der trotz Änderungen der Einstellungen seinen Namen behält?

Solutions Collecting From Web of "Speichern von Optionen in einem Shortcode"

Wenn Sie die Anzeige auf der Grundlage von Administratoroptionen ändern möchten, müssen Sie sich nicht mit den $attributes shortcode_atts $attributes , die an Ihren Callback übergeben $attributes , befassen. Die Attribute, die übergeben werden (und durch shortcode_atts ), sollen die Art und Weise ändern, in der ein Shortcode funktioniert, je nachdem, wie ein Endbenutzer ihn verwendet.

Nimm das: [wpse75238 arg1="asdf" arg2="asdf"]

 < ?php add_shortcode('wpse75238', 'wpse75238_shortcode_cb'); function wpse75238_shortcode_cb($atts) { return var_export($atts); } 

Etwas wie array ( 'arg1' => 'asdf', 'arg2' => 'asdf' ) wird array ( 'arg1' => 'asdf', 'arg2' => 'asdf' ) .

shortcode_atts setzt nur Standardwerte für Sie (und entfernt "nicht autorisierte" Schlüssel) in ähnlicher Weise wie wp_parse_args .

Wenn Sie nur basierend auf einer Option für die Administratorseite Änderungen vornehmen möchten, müssen Sie die Benutzereingaben nicht beachten.

 < ?php add_shortcode('wpse75238', 'wpse75238_shortcode_cb'); function wpse75238_shortcode_cb() { if('some_value' = get_option('wpse75238_opts')) { // do stuff because some_value was set. } } 

Das Aufrufen des Kurzwahlcodes mit Argumenten ändert nichts an dem obigen Kurzwahlcode.