説明
maybe_serialize() は、配列やオブジェクトを、必要に応じてシリアライズして文字列にする関数です。
基本構文
maybe_serialize( mixed $data ): mixed
引数
$data:変換するデータ
戻り値
シリアライズした文字列。スカラー値はそのまま。
使い方(サンプル)
$s = maybe_serialize( array( 'a' => 1 ) );
注意点
update_option()などは、内部で自動的に呼ばれます。
実務での使いどころ
- 配列やオブジェクトを、文字列にして、データベースに保存するとき(
update_option()などが、内部で行う処理)。
よくあるミスと対処
update_option()・update_post_meta()は、内部で、自動的に呼ぶ。自分で呼ぶと、二重にシリアライズされる。- 文字列や数値は、そのまま返る(シリアライズされない)。
- 外部とのやり取りに、使っている。復元には、オブジェクトを注入される危険があるため、外部とのやり取りは、JSONを使う。
NG例
update_option( 'my_data', maybe_serialize( $data ) ); // 二重にシリアライズされる
OK例
update_option( 'my_data', $data ); // 配列のまま渡せば、自動で処理される
使い分け早見表
| 関数 | 役割 |
|---|---|
maybe_serialize() |
配列・オブジェクトを、文字列にする |
maybe_unserialize() |
シリアライズされた文字列を、元に戻す |
is_serialized() |
シリアライズされた形式かを、判定する |
関連項目
maybe_unserialize()、is_serialized()
公式リファレンス:maybe_serialize() | Function | WordPress Developer Resources

コメント