2019年12月25日
【WordPressエラー】「返答が正しい JSON レスポンスではありません」ショートコードのエラー

WordPressを活用してウェブサイトを自作のテーマを用いて運営していると、特定の処理を投稿記事の中で自由に行いたい時があるかもしれません。ショートコードはそのような意図を実現してくれる非常に便利な機能です。
ショートコードを作成するときは、基本的にfunction.phpか、function.phpからincludeする方法がよくとられています。同じ機能をほかのテーマでも用いたいときは主に後者が採用されるのではないでしょうか。
そんな便利なショートコードですが、自作していると思わぬエラーにつまずいたりすると、作業がなかなか進まず頭を抱えることがあるかもしれません。今回は自作ショートコードの作成時にぶつかるエラー対策を紹介します。
「返答が正しい JSON レスポンスではありません」

エラーメッセージは基本的に、構文に誤りがあるため、エラーの起きている内容を返してくれることが多いのですが、ショートコード作成時に出るこの「返答が正しい JSON レスポンスではありません」というメッセージはこれだけではなかなか解決の糸口まで運びにくくなっています。
文字を出力する関数が使えない

このエラーにぶつかったとき、ショートコードに使用する関数に文字を出力する記述が含まれている可能性があります。
- echo
- printf
- sprintf、その他文字を出力する関数
代表的なものとしてはこれらの関数を使用することで「返答が正しい JSON レスポンスではありません」とエラーメッセージに遭遇している可能性があります。
文字列を書き出すにはどうしたらいいの?

echo や print が使用できないとなると文字列を書き出すにはどうしたらいいかつまずいてしまうポイントですが、これは return を使用することで解決します。
書き出したい文字列を変数に格納していくことで、書き出し文字列を return で返すことでショートコードはこれを出力してくれます。
- NOTICE
- このページは2019年12月25日に作成されています。閲覧時期によっては情報が古い可能性があります。免責事項をご確認ください。