Como você armazena opções com a sintaxe: n: {{}} nas wp_options?

9

Estou verificando como funciona um determinado plug-in e notei que ele armazena seus dados para option_value em wp_options neste formato de matriz ...

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

Eu gosto desse método, já que ele usa apenas uma única linha para armazenar meus dados personalizados, é fácil desinstalar a limpeza. Existe uma maneira padrão de executar uma operação de obtenção / configuração em um campo personalizado que resulta nessa sintaxe?

Atualização: obrigado Denis e os outros que adicionaram respostas.

Aqui está um excelente tutorial sobre esse método, caso outra pessoa tenha essa pergunta> http://striderweb.com/nerdaphernalia/2008/07/consolidate-options-with-arrays/

Scott B
fonte

Respostas:

8

Basta passar uma matriz ao atualizar sua opção. Será serializado automaticamente.

Denis de Bernardy
fonte
Obrigado Denis. Aqui está um excelente tutorial sobre este método no caso de alguém tem essa questão> striderweb.com/nerdaphernalia/2008/07/...
Scott B
Uau - não fazia ideia. Eu continuei tentando serializá-los eu mesmo.
Don Gilbert
Esse formato é específico para o WordPress?
trusktr 28/05
Nota: Você também pode transmitir um objeto (stdClass, por exemplo). Quando você usa get_option, você recebe o objeto exato de volta :) #
Brian Brian
@ Brian: Na verdade, não é stdClass, por exemplo. É apenas stdClass, caso contrário, o WP travará no carregamento se a classe não existir, a opção estiver configurada para carregamento automático e nenhum carregador automático de classe poderá encontrar a classe apropriada.
Denis de Bernardy
3

A serialização é feita automaticamente, mas se você quiser saber como fazer isso manualmente, a função a ser visualizada é chamada serialize ()

editor
fonte
2

Conforme outras respostas, a (des) serialização é realizada automaticamente em formatos de dados mais complexos (matrizes, objetos) quando as opções são armazenadas ou recuperadas. Isso também se aplica a transitórios e outras funcionalidades.

Tecnicamente, isso é realizado pelo uso interno maybe_serialize()e maybe_unserialize()funções que tentam determinar se os dados precisam ser processados ​​ou passados ​​como estão.

Rarst
fonte