wp_optionsにa:n:{{}}構文でオプションをどのように保存しますか?


9

特定のプラグインがどのように機能するかを調べたところ、option_valueのデータがこの配列形式でwp_optionsに格納されていることがわかりました...

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 ";}}

私はこの方法が好きです。カスタムデータを保持するために単一の行しか使用しないため、クリーンアップのアンインストールは簡単です。この構文になるカスタムフィールドでget / set操作を行う標準的な方法はありますか?

更新:デニスと応答を追加した他の人に感謝します。

他の誰かがこの質問を持っている場合のこの方法に関する優れたチュートリアルは次のとおりです> http://striderweb.com/nerdaphernalia/2008/07/consolidate-options-with-arrays/

回答:


8

オプションを更新するときに配列を渡すだけです。自動的にシリアライズされます。


デニスに感謝します。ここでは、この方法の優れたチュートリアルでは、誰がこの質問>持っている場合だstriderweb.com/nerdaphernalia/2008/07/...
スコット・B

うわー-わからなかった。私は自分でシリアル化しようとし続けました。
Don Gilbert、

この形式はWordPressに固有ですか?
trusktr

注:オブジェクト(stdClassなど)を渡すこともできます。get_optionを使用すると、正確なオブジェクトが返されます:)
Brian

@ブライアン:実際には、たとえばstdClassではありません。これ stdClass のみです。それ以外の場合、クラスが存在せず、オプションがオートロードに設定されていて、クラスオートローダーが適切なクラスを見つけられない場合、WPはロード時にクラッシュします。
Denis de Bernardy 2015年


2

他の回答と同様に、オプションが格納または取得されるときに、より複雑なデータ形式(配列、オブジェクト)で(非)シリアル化が自動的に実行されます。これは、トランジェントやその他の機能にも当てはまります。

技術的には、これは、データをそのまま処理するか、そのまま渡す必要があるかどうかを判断しようmaybe_serialize()とする内部使用法とmaybe_unserialize()関数によって実行されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.