Tôi nghĩ rằng tôi đang làm cho cuộc sống của mình trở nên dễ dàng và có ý thức trong tương lai bằng cách lưu một số nội dung dưới dạng các bit của JSON trong các trường post_meta tùy chỉnh. Thật không may, WordPress không đồng ý và làm cho cuộc sống của tôi vô cùng khó khăn.
Tôi có một chuỗi JSON trông giống như thế này. Đây chỉ là một bit và chuỗi nhận xét chỉ là một số thực thể unicode giả. Toàn bộ điều được tạo ra w / json_encode .
{
"0": {
"name": "Chris",
"url": "testdomain.com",
"comment": "\u00a5 \u00b7 \u00a3 \u00b7 \u20ac \u00b7 \u00b7 \u00a2 \u00b7 \u20a1 \u00b7 \u20a2 \u00b7 \u20a3 \u00b7 \u20a4 \u00b7 \u20a5 \u00b7 \u20a6 \u00b7 \u20a7 \u00b7 \u20a8 \u00b7 \u20a9 \u00b7 \u20aa \u00b7 \u20ab \u00b7 \u20ad \u00b7 \u20ae \u00b7 \u20af \u00b7 \u20b9"
}
}
Thật không may sau khi tôi lưu nó với update_post_meta
, nó xuất hiện như thế này:
{
"0": {
"name": "Chris",
"url": "testdomain.com",
"comment": "u00a5 u00b7 u00a3 u00b7 u20ac u00b7 u00b7 u00a2 u00b7 u20a1 u00b7 u20a2 u00b7 u20a3 u00b7 u20a4 u00b7 u20a5 u00b7 u20a6 u00b7 u20a7 u00b7 u20a8 u00b7 u20a9 u00b7 u20aa u00b7 u20ab u00b7 u20ad u00b7 u20ae u00b7 u20af u00b7 u20b9"
}
}
Và với các dấu gạch chéo bị tước, nó không thể json_decode
quay lại nội dung hữu ích.
Bất kỳ ý tưởng tại sao WordPress có thể làm điều này, và nếu có một cách để tránh nó? Tôi không thể sử dụng cờ JSON_UNESCAPED_UNICODE vì đây là bản cài đặt PHP 5.3.x và tôi đã thử mã hóa htmlentities
trước khi nội dung được chuyển đến json_encode
, nhưng chỉ thu được một tập hợp con nhỏ của các thực thể UTF-8.
Cảm ơn trước!
(EDIT: FWIW, tôi biết rằng tôi chỉ có thể lưu một mảng trực tiếp vào post_meta và nó sẽ được tuần tự hóa và điều kỳ diệu sẽ xảy ra nhưng tôi chỉ thích ý tưởng lưu trữ dữ liệu dưới dạng JSON. Nếu không có giải pháp đơn giản, thanh lịch tôi sẽ hang động, nhưng tôi rất hy vọng có được một giải pháp thanh lịch dễ dàng!)