¿Cómo almacena opciones con una: n: {{}} sintaxis en wp_options?

9

Estoy comprobando cómo funciona un complemento en particular y noté que almacena sus datos para option_value en wp_options en este formato de matriz ...

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

Me gusta este método, ya que solo usa una sola fila para contener mis datos personalizados, la limpieza de desinstalación es fácil. ¿Hay una forma estándar de hacer una operación get / set en un campo personalizado que da como resultado esta sintaxis?

Actualización: Gracias a Denis y los otros que han agregado respuestas.

Aquí hay un excelente tutorial sobre este método en caso de que alguien más tenga esta pregunta> http://striderweb.com/nerdaphernalia/2008/07/consolidate-options-with-arrays/

Scott B
fuente

Respuestas:

8

Simplemente pase una matriz al actualizar su opción. Será serializado automáticamente.

Denis de Bernardy
fuente
Gracias Denis Aquí hay un excelente tutorial sobre este método en caso de que alguien más tenga esta pregunta> striderweb.com/nerdaphernalia/2008/07/…
Scott B
Wow, no tenía idea. Seguí tratando de serializarlos yo mismo.
Don Gilbert
¿Es este formato específico de WordPress?
trusktr
Nota: También puede pasar un objeto (stdClass por ejemplo). Cuando uses get_option, obtendrás el objeto exacto :)
Brian
@Brian: En realidad, no es stdClass por ejemplo. Es solo stdClass, de lo contrario, WP se bloqueará con la carga si la clase no existe, la opción se establece en carga automática y ningún cargador automático de clase puede encontrar la clase adecuada.
Denis de Bernardy
3

La serialización se realiza automáticamente, pero si desea saber cómo hacer esto manualmente, la función para ver se llama serializar ()

editor
fuente
2

Según otras respuestas (des), la serialización se realiza automáticamente en formatos de datos más complejos (matrices, objetos) cuando las opciones se almacenan o recuperan. Esto también se aplica a los transitorios y otras funcionalidades.

Técnicamente, esto se realiza mediante el uso interno maybe_serialize()y las maybe_unserialize()funciones que intentan determinar si los datos deben procesarse o pasarse tal como están.

Rarst
fuente