発生した問題
カスタム投稿を管理できるプラグイン”Custom Post Type UI”でカスタム投稿を新規追加し、他のWordPressからエクスポートしたカスタム投稿のデータをXMLファイルでインポートしました。
管理側のカスタム投稿の一覧画面へアクセスすると、インポートされたカスタム投稿が表示され、公開側の投稿ページも表示されます。
しかし、カスタム投稿の編集・新規追加をしようとすると、画面が真っ白に。
開発者ツールのコンソールを確認すると、Resource not found.(404)エラーが出ており、そのURL(WordPressのREST API)にアクセスすると、エラーメッセージが返されていました。
そのエラーメッセージは、Unicodeエスケープシーケンスに変換されていたので、変換ツールで通常テキストに変換すると、”Invalid post id”なるエラーであることが分かりました。
このエラーは例えば、存在しない投稿のIDを指定した時に発生するものであるようですが、データベースを確認すると、確かに該当のIDが付与された投稿は存在しています。
原因と解決策
さらに文献を漁った結果、原因はカスタム投稿のスラッグにWordPressの予約語を使用した為でした。
今回指定したスラッグは”media”でしたが、下記codexの予約語一覧内に記載があります。
Reserved Terms « WordPress Codex
なお、最新ではないWordPressでは問題が発生しなかったので、最近のバージョンアップにて追加されたものだということが分かりました。
解決方法として、スラッグを別名に変えた後、カスタム投稿アーカイブURLのスラッグを”media”に、カスタム投稿リライトスラッグを”media”に設定することで、見かけ上は”media”というスラッグのカスタム投稿でありながら、システム内部では別名スラッグのカスタム投稿として管理することが出来るようになりました。