¿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/

Respuestas:


8

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


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 ()


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.