経験知ロゴ

KusanagでWP REST APIの取得がうまくいかないときの対処法

KUSANAGIロゴ

WP REST APIを使ってアプリを開発しているのですが、APIのリクエスト結果がうまく返ってきたり返ってこなかったりして困っていました。

正確に言うと、レスポンスはしっかり返ってきているのに、返ってきたJSONテキストにJSON.parse()をすると空になるという謎な状態でした。

丸一日以上悩んだのですが、原因は、KUSANAGIがjsonをキャッシュしていたこと。

通常のレスポンスなら問題なく処理できるのですが、キャッシュファイルが返ってきたときはJSON.parse()が空になってしまいます。

1回処理がうまく行っていること。動作しなくなっても取得したいデータがちゃんと返ってきているので原因の検討が付きませんでした。(あとから考えると、ちゃんとしたJSONテキストではなかったのでちゃんと返ってきていないということだったのですが…。)

KUSANAGIがWP REST APIのリクエストURLをキャッシュしないようにしたら解決しましたので、その方法を紹介します。

KUSANAGIで特定のURLをキャッシュさせないようにする方法

WordPressの管理画面を開き、「KUSANAGI」→「ページキャッシュ」→「キャッシュ除外URL」に「/wp-json/*」を追加し、「変更を保存」をクリック。
kusanagiのキャッシュ設定

除外URLはこちら。

/wp-json/*

保存が完了したら、「キャッシュのクリア」の「すべて」をクリックしてすでにできたキャッシュを削除。
キャッシュの削除

これで完了。

おわりに

KUSANAGIは便利だけどハマりどころが多いぜ…。

役に立ったらこの記事のシェアをお願いします

ブログのフォロー・RSS購読は下記ボタンから