開発作業中にエラーが表示されて困ったので、行った解決策の備忘録をのせておきます。
WordPressのバージョン
4.9.0
※2017/12/4追記
4.9.1ではこの問題は修正されているので、WordPressのバージョンが低い方はアップデートされることをおすすめします。
問題
不要になったテンプレートファイル(page-xxxx.php)を削除すると、以下のようなエラーが表示される。
Warning: file_get_contents(xxxx): failed to open stream: No such file or directory in /xxxx/wp-includes/class-wp-theme.php on line 1042
※適当に伏せ字にしています
※今回は「page-sitemap.php」というテンプレートファイルを削除しました
それでも強引に更新しようとすると、白い画面でエラーが表示される
原因
WordPressのバージョンが4.9.0になってから、テンプレートファイルの階層をキャッシュするようになったらしいです。
そのため、テンプレートファイル(page-xxxx.php)を削除することで、キャッシュに存在していたはずのテンプレートファイルが無いとみなされてエラーが出ていたようです。
英語でよくわからないのですが、以下のチケットで議論されていたみたいです。
https://core.trac.wordpress.org/ticket/42573
ちなみに1時間待つことでキャッシュが更新されてクリアされるみたいですが・・開発作業中にそんな待ってられないですね!
解決策
上記問題に対応するためのプラグインを入れる。
https://gist.github.com/westonruter/6c2ca0e5a4da233bf4bd88a1871dd950
githubの使い方がわからない方のために、念のためやり方をのせておきます。
プラグインの入れ方
- 上記サイトの右上の方の「Download ZIP」をクリックしてファイルダウンロード
- 解凍したファイルの「wp-42573.php」をWordPressのプラグインディレクトリ(/wp-content/plugins/)の中に移動
余談
一応プラグインの中身を見てみましたが、内容はいたってシンプルで管理画面がロードされるたびにキャッシュをクリアする内容のようです。
4.9.1になればこの問題は修正されるんじゃないかなーと思います。
2017/12/4追記
2017/12/1に更新されたWordPress4.9.1で、この問題も修正されたようです。
(#42573ってところですかね・・)
https://make.wordpress.org/core/2017/11/28/wordpress-4-9-1-scheduled-for-november-29th/