サポート » 使い方全般 » update_post_metaでシリアライズしたデータを書き込むと余分な情報が付加され

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • update_post_meta() 関数から呼び出される update_metadata() 関数内でデータをシリアライズしているので、二重にシリアライズされているためだと思われます。
    http://core.trac.wordpress.org/browser/tags/3.0/wp-includes/meta.php#L122

    update_metadata() 関数が適宜シリアライズしてくれますので、update_post_meta() にはシリアライズされていないデータを渡しても大丈夫です。

    スレッド開始 gfb00756yahoocojp

    (@gfb00756yahoocojp)

    シリアライズ処理を外したらうまくいきました。
    ありがとうございました!
    大感謝です。

    スレッド開始 gfb00756yahoocojp

    (@gfb00756yahoocojp)

    wokamotoさんの文言「update_metadata() 関数が適宜シリアライズしてくれますので、update_post_meta() にはシリアライズされていないデータを渡しても大丈夫です。」を、余計な事かと思ったのですが、
    http://wordpress.org/support/topic/316122?replies=6
    に英訳して追記しておきました。見た人が助かるかも、と。

    update_metadata () function, so that makes it appropriate serialized, update_post_meta () is okay to pass the data is not serialized.

    ありがとうございました。

    英訳ありがとうございます。

    本当は update_metadata() 関数内では、 maybe_serialize() 関数を使って、シリアライズされてないデータならシリアライズし、すでにシリアライズされているデータならシリアライズしないはずなんですけど…
    maybe_serialize() 関数でシリアライズされているか否かの判定がバグってるんですかね。
    (未検証)
    http://core.trac.wordpress.org/browser/tags/3.0/wp-includes/functions.php#L1005

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「update_post_metaでシリアライズしたデータを書き込むと余分な情報が付加され」には新たに返信することはできません。