wp_json_encode() の使い方|説明・引数・注意点

説明

wp_json_encode() は、データをJSON文字列に変換する関数です。

基本構文

wp_json_encode( mixed $data, int $flags = 0, int $depth = 512 ): string|false

引数

  • $data:変換するデータ
  • $flags:JSON_UNESCAPED_UNICODE などのフラグ
  • $depth:最大の深さ

戻り値

JSON文字列。失敗時は false。

使い方(サンプル)

echo wp_json_encode( array( 'name' => '太郎' ), JSON_UNESCAPED_UNICODE );

注意点

  • PHPの json_encode() と違い、文字コードの不整合も自動で補正して変換します。

実務での使いどころ

  • PHPの配列を、JSONの文字列にして、JavaScriptへ渡すとき。
  • <script> の中に、変数を安全に、埋め込むとき。

よくあるミスと対処

  • PHPの json_encode() を使っている。不正なUTF-8の文字列が含まれると、false が返る。wp_json_encode() は、これを考慮している。
  • HTMLの属性値に、出力するときに、エスケープしていない。
  • 失敗(false)を、確認していない。

NG例

<script>var data = <?php echo json_encode( $data ); ?>;</script> <!-- 不正な文字列で、false になる場合がある -->

OK例

<script>var data = <?php echo wp_json_encode( $data ); ?>;</script>

使い分け早見表

関数 特徴
wp_json_encode() JSONの文字列を返す(WordPress向けの処理つき)
wp_send_json() JSONを出力して、処理を終了する
json_decode() JSONの文字列を、PHPの値に戻す

関連項目

wp_send_json()、json_decode()

公式リファレンス:wp_json_encode() | Function | WordPress Developer Resources

コメント

タイトルとURLをコピーしました