やっぱり地獄!GridsomeでWordPress データが取れなくなったので対処した件
WordPress地獄、再来。
WordPressを5.8にアップデートしたところ、Gridsomeから記事データが取れなくなりました。
エラーはこんな感じ。
TypeError: data.trim is not a function
APIから取ったデータが悪いっぽいですね。
プラグインを検証してみると、どうやらwp_templateのエンドポイントで、
{
code: 'rest_cannot_manage_templates',
message: 'このサイトのテンプレートにアクセスする権限がありません。',
data: { status: 401 }
}
401エラーが発生している模様。
そもそもテーマのデータなんかいらないやん。ということで対処します。
WP REST API Controllerプラグインを入れて、wp_templateを外す
gridsome-source-wordpressプラグインを直接編集してテストしてみたところ、wp_templateのデータを落としても、Gridsome自体はきちんと動作したので、この項目をREST APIから落とします。
そのためにDBをイジると WordPress地獄が深くなるので、プラグインという軽めの地獄にしておきます。
インストールしたところ、これまたメニューから設定が見つからないという地獄が待ってたんですが、「ツール」、メニューにいました。
REST API Controllerの設定ページから、wp_templateのボタンをdisableにすると、REST APIから表示されないようになります。
この段階で、ローカルでテストサーバーを立ち上げたところ、きちんと表示されました。
まあ、意味合いを考えると、wp_templateは適切なパーミッションを与えるのは正しい動作です。ただ、それだったら最初からそうしておいてくれよ、WordPress。
仕様変更、プラグイン変更、テーマ変更など複数の地獄が重なって沼になっていく、まさにWordPressらしい地獄でした。。。