次期エディタのGutenbergで記事の保存ができなくなりました。固定ページやカスタム投稿タイプではできるのですが、投稿の時だけエラーが出てしまいます。その試行錯誤した時の話です。
原因はセキュリティプラグイン
結論から書きますと、古いバージョンのWordFenceプラグインでした。こいつが保存時のRest APIへの通信を遮ってエラーを引き起こしていました。(あくまで古いバージョンのものなので、最新版が悪さをするかどうかは分かりません。)保存できない場合はセキュリティプラグインをオフにしてみると良いかもしれません。
自分の場合、ちょっと事情が複雑だったので、その辺りも書いておきます。
違うディレクトリの他のWPプラグインが悪さをしていた
これが、問題が起きているWordPressなら特定が早かったと思うのですが、同一契約のサーバ上*の別のサイトのプラグインが原因でした。
*共有サーバの別のユーザーという意味ではなく、自分のwwwディレクトリ内の別サイトという意味です。
別サイトのプラグインが干渉してきたのは、サーバ内のディレクトリ構造によるものだと思います。
-www-wp-...
└domainB-wp-...
└domainC-wp-...
というような構造になっています。wpディレクトリにWordPressのファイルがあります。wwwをドメインのルートとしたドメインAのサイトと、domainBをルートとしたドメインBのサイト、同様にドメインCがあり、問題が起こっていたのはドメインBのサイトでした。(さらに言うとBはCのサブドメインになります。)
ドメインCもGutenbergを導入していますが、こちらでは問題は起こっておらず、ドメインBの投稿でのみ発生していました。
ドメインAのサイトは既に閉鎖してドメインも解約していたのですが、ファイルやデータベースは残っていました(初期ドメインからのアクセスは可能)。ドメインAから見たらドメインBもCも配下になるのでセキュリティの保護範囲だったのでしょう。加えてドメインAのプラグインのファイアーウォールが有効になったまま(なおかつ更新していない)状態だったので不審な通信と誤検知され保存ができなかったのだと考えられます。
複数ドメインを利用の際はご注意を
ドメインAを作った当時は今後ドメインを作る予定もなく、なんの考えもなしにルートディレクトリをそのままドメイン直下にしました。今回のようにドメイン配下に別ドメインを置くと、こうした干渉が起こる可能性があるので、できるかぎり、ドメイン毎にディレクトリを分けた方が良いと思います。
今回はセキュリティプラグインでしたが、他にもキャッシュ系プラグインなどは影響を及ぼすかもしれません。複数ドメインを同一契約上のサーバで運用する際には気をつけたいポイントです。