説明
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

コメント