Как хранить параметры с синтаксисом: n: {{}} в wp_options?

9

Я проверяю, как работает конкретный плагин, и заметил, что он хранит свои данные для option_value в wp_options в этом формате массива ...

а: 2: {я: 20; а: 2: {S: 8: "оригинальный"; s: 15: "20.original.jpg"; s: 9: "эскиз"; s: 12: "20.thumb .jpg ";} я: 8; а: 2: {s: 8:" оригинальный "; s: 14:" 8.original.png "; s: 9:" эскиз "; s: 11:" 8.thumb .png ";}}

Мне нравится этот метод, так как он использует только одну строку для хранения моих пользовательских данных, очистка удаления легко. Есть ли стандартный способ выполнить операцию get / set для настраиваемого поля, что приводит к этому синтаксису?

Обновление: спасибо Денису и другим, кто добавил ответы.

Вот отличное руководство по этому методу, если у кого-то еще есть этот вопрос> http://striderweb.com/nerdaphernalia/2008/07/consolidate-options-with-arrays/

Скотт Б
источник

Ответы:

8

Просто передайте массив при обновлении вашего варианта. Он будет сериализован автоматически.

Дени де Бернарди
источник
Спасибо Денис. Вот отличное руководство по этому методу, если у кого-то еще есть этот вопрос> striderweb.com/nerdaphernalia/2008/07/…
Скотт Б.
Вау - понятия не имел. Я продолжал пытаться сериализовать их сам.
Дон Гилберт
Этот формат специфичен для WordPress?
trusktr
Примечание. Вы также можете передать объект (например, stdClass). Когда вы используете get_option, вы получите точный объект обратно :)
Brian
@Brian: На самом деле это не stdClass, например. Это только stdClass, иначе WP будет аварийно завершать работу при загрузке, если класс не существует, для параметра задано значение автозагрузки, и ни один автозагрузчик классов не сможет найти соответствующий класс.
Дени де Бернарди
3

Сериализация выполняется автоматически, но если вы хотите узнать, как сделать это вручную, функция для просмотра называется serialize ()

редактор
источник
2

Согласно другим ответам (не) сериализация выполняется автоматически для более сложных форматов данных (массивов, объектов), когда параметры сохраняются или извлекаются. Это также относится к переходным процессам и другим функциям.

Технически это выполняется внутренним использованием maybe_serialize()и maybe_unserialize()функциями, которые пытаются определить, должны ли данные обрабатываться или передаваться как есть.

Rarst
источник