Bagaimana Anda menyimpan opsi dengan sintaks: n: {{}} di wp_options?


9

Saya memeriksa cara kerja plugin tertentu dan memperhatikan bahwa plugin ini menyimpan datanya untuk option_value di wp_options dalam format array ini ...

a: 2: {i: 20; a: 2: {s: 8: "original"; s: 15: "20.original.jpg"; s: 9: "thumbnail"; s: 12: "20.thumb .jpg ";} i: 8; a: 2: {s: 8:" original "; s: 14:" 8.original.png "; s: 9:" thumbnail "; s: 11:" 8.thumb .png ";}}

Saya suka metode ini, karena hanya menggunakan satu baris untuk menyimpan data khusus saya, menghapus pembersihan itu mudah. Apakah ada cara standar untuk melakukan operasi get / set pada bidang khusus yang menghasilkan sintaks ini?

Pembaruan: Terima kasih kepada Denis dan yang lainnya yang telah menambahkan tanggapan.

Berikut adalah tutorial yang sangat baik tentang metode ini jika ada orang lain yang memiliki pertanyaan ini> http://striderweb.com/nerdaphernalia/2008/07/consolidate-options-with-arrays/

Jawaban:


8

Cukup berikan array saat memperbarui opsi Anda. Ini akan diserialisasi secara otomatis.


Terima kasih, Denis. Berikut adalah tutorial yang sangat baik tentang metode ini jika ada orang lain yang memiliki pertanyaan ini> striderweb.com/nerdaphernalia/2008/07/...
Scott B

Wow - Tidak tahu. Saya terus mencoba membuat serialisasi sendiri.
Don Gilbert

Apakah format ini khusus untuk WordPress?
trusktr

Catatan: Anda juga bisa melewatkan objek (stdClass misalnya). Ketika Anda menggunakan get_option, Anda akan mendapatkan objek yang tepat kembali :)
Brian

@Brian: Sebenarnya, ini bukan stdClass misalnya. Ini hanya stdClass, jika tidak WP akan mogok saat kelas tidak ada, opsi disetel ke autoload, dan tidak ada autoloader kelas yang bisa menemukan kelas yang sesuai.
Denis de Bernardy

3

Serialisasi dilakukan secara otomatis, tetapi jika Anda ingin tahu bagaimana melakukan ini secara manual, fungsi untuk melihatnya disebut serialisasi ()


2

Seperti jawaban lain (un) serialisasi dilakukan secara otomatis pada format data yang lebih kompleks (array, objek) ketika opsi disimpan atau diambil. Ini juga berlaku untuk transien dan fungsi lainnya.

Secara teknis ini dilakukan oleh penggunaan internal maybe_serialize()dan maybe_unserialize()fungsi-fungsi yang mencoba untuk menentukan apakah data perlu diproses atau diteruskan sebagaimana adanya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.