Come memorizzi le opzioni con una sintassi: n: {{}} in wp_options?


9

Sto verificando come funziona un particolare plugin e ho notato che memorizza i suoi dati per option_value in wp_options in questo formato di array ...

un: 2: {i: 20; un: 2: {s: 8: "originale"; s: 15: "20.original.jpg"; s: 9: "miniatura"; s: 12: "20.thumb .jpg ";} i: 8; un: 2: {s: 8:" originale "; s: 14:" 8.original.png "; s: 9:" miniature "; s: 11:" 8.thumb .png ";}}

Mi piace questo metodo, poiché utilizza solo una riga per contenere i miei dati personalizzati, disinstallare la pulizia è facile. Esiste un modo standard per eseguire un'operazione get / set su un campo personalizzato che genera questa sintassi?

Aggiornamento: grazie a Denis e agli altri che hanno aggiunto risposte.

Ecco un eccellente tutorial su questo metodo nel caso in cui qualcun altro abbia questa domanda> http://striderweb.com/nerdaphernalia/2008/07/consolidate-options-with-arrays/

Risposte:


8

Basta passare un array durante l'aggiornamento dell'opzione. Verrà serializzato automaticamente.


Grazie Denis. Ecco un eccellente tutorial su questo metodo nel caso in cui qualcun altro abbia questa domanda> striderweb.com/nerdaphernalia/2008/07/…
Scott B

Wow - Non ne avevo idea. Ho continuato a provare a serializzarli da solo.
Don Gilbert,

Questo formato è specifico per WordPress?
trusktr,

Nota: è anche possibile passare un oggetto (ad esempio stdClass). Quando usi get_option otterrai l'oggetto esatto :)
Brian

@Brian: In realtà, ad esempio, non è stdClass. È solo stdClass, altrimenti WP si arresta in modo anomalo al caricamento se la classe non esiste, l'opzione è impostata su caricamento automatico e nessun caricatore automatico di classe può trovare la classe appropriata.
Denis de Bernardy,

3

La serializzazione viene eseguita automaticamente, ma se vuoi sapere come farlo manualmente, la funzione da guardare si chiama serialize ()


2

Come per le altre risposte, la (e) serializzazione viene eseguita automaticamente su formati di dati più complessi (array, oggetti) quando le opzioni vengono archiviate o recuperate. Questo vale anche per i transitori e altre funzionalità.

Tecnicamente questo viene eseguito dall'uso interno maybe_serialize()e dalle maybe_unserialize()funzioni che tentano di determinare se i dati devono essere elaborati o passati così come sono.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.