Làm thế nào để bạn lưu trữ các tùy chọn với cú pháp: n: {{}} trong wp_options?


8

Tôi đang kiểm tra cách một plugin cụ thể hoạt động và nhận thấy rằng nó lưu trữ dữ liệu của nó cho tùy chọn_value trong wp_options ở định dạng mảng này ...

a: 2: {i: 20; a: 2: {s: 8: "gốc"; s: 15: "20.origen.jpg"; s: 9: "hình thu nhỏ"; s: 12: "20.thumb .jpg ";} i: 8; a: 2: {s: 8:" gốc "; s: 14:" 8.origen.png "; s: 9:" hình thu nhỏ "; s: 11:" 8.thumb .png ";}}

Tôi thích phương pháp này, vì nó chỉ sử dụng một hàng duy nhất để giữ dữ liệu tùy chỉnh của tôi, việc gỡ cài đặt dọn dẹp rất dễ dàng. Có cách tiêu chuẩn nào để thực hiện thao tác get / set trên trường tùy chỉnh dẫn đến cú pháp này không?

Cập nhật: Cảm ơn Denis và những người khác đã thêm phản hồi.

Đây là một hướng dẫn tuyệt vời về phương pháp này trong trường hợp bất kỳ ai khác có câu hỏi này> http://striderweb.com/nerdapécalia/2008/07/consolidate-options-with-arrays/

Câu trả lời:


8

Chỉ cần vượt qua một mảng khi cập nhật tùy chọn của bạn. Nó sẽ được nối tiếp tự động.


Cảm ơn anh. Đây là một hướng dẫn tuyệt vời về phương pháp này trong trường hợp bất kỳ ai khác có câu hỏi này> striderweb.com/nerdapécalia / 2008/07 / Kẻ
Scott B

Wow - Không có ý tưởng. Tôi tiếp tục cố gắng nối tiếp chúng một mình.
Don Gilbert

Định dạng này có dành riêng cho WordPress không?
trusktr

Lưu ý: Bạn cũng có thể truyền một đối tượng (ví dụ stdClass). Khi bạn sử dụng get_option, bạn sẽ lấy lại được đối tượng chính xác :)
Brian

@Brian: Thật ra, đó không phải là stdClass chẳng hạn. Đó chỉ là stdClass, WP khác sẽ bị lỗi khi tải nếu lớp không tồn tại, tùy chọn được đặt thành tự động tải và không có trình tải tự động lớp nào có thể tìm thấy lớp thích hợp.
Denis de Bernardy 19/03/2015


2

Theo các câu trả lời khác (un) tuần tự hóa được thực hiện tự động trên các định dạng dữ liệu phức tạp hơn (mảng, đối tượng) khi các tùy chọn được lưu trữ hoặc truy xuất. Điều này cũng áp dụng cho quá độ và chức năng khác.

Về mặt kỹ thuật, điều này được thực hiện bằng cách sử dụng nội bộ maybe_serialize()và các maybe_unserialize()chức năng cố gắng xác định xem dữ liệu cần được xử lý hoặc chuyển như hiện tại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.