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/

Respostas:


8

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


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


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.