WordPress(ワードプレス)のテーマを更新したら画面が真っ白になってしまった話

私はWordPressでBase WPなる、外国人さんが作ったテーマ(テンプレート)を使っているのですが、先日こいつの新しいバージョンがアップデートされていたので更新ボタンを押したところ、画面が真っ白になってしまいました。

ちょうどスタイルシート(CSS)をいじっていたところだったので、何か余計なことをやったか誤って削除してしまったのかと思ったがどうもそういうわけではない。

そこでネットで検索したところ、こちらのWordPressで画面が真っ白になったら、最初にやるべきことという記事に書かれているように

wp-config.phpの最後の方に書かれている部分

define('WP_DEBUG', false);

この”false”を”true”に変えてやると、

define('WP_DEBUG', true);

エラーの詳細が表示されるようになります。

よく見るとソースの中にも、

/**
 * 開発者へ: WordPress デバッグモード
 * この値を true にすると、開発中に注意 (notice) を表示します。
 */

と書かれていますけどね。

以上の設定により、明らかになったエラーの種類は、
Parse error: syntax error, unexpected …
syntaxとは構文でそこにエラーが発生している、これはつまりPHPとしての文法のどこかが誤っているため、正しく理解できないみたいなことです。

原因は、Base WPのテーマ自体にあって(同じくWordPressで作っている別のサイトで同じテーマを使っても同じエラーが出たため、やはりこのテーマ自体がおかしかったようである)、こいつのtemplate-functions.phpの以下の部分がおかしかったようです。

/*----------------------------------------------------------------------
# ARCHIVE TITLE FILTER
 ----------------------------------------------------------------------*/
add_filter('get_the_archive_title', function ($title) {
    if ( is_tax() || is_category() ) {
        $title = sprintf( __( '%s', 'base-wp' ), single_cat_title( '', false ) );
    } elseif ( is_post_type_archive() ) {
        $title = sprintf( __( '%s', 'base-wp' ), post_type_archive_title( '', false ) );
    }
    return $title;
});

なぜ分かったかと言うと、以上の設定により、wp-content/themes/base-wp/ins/render/template-functions.phpの○○行目がおかしい、みたいなことが表示されたからである。

なので、おかしな部分を変更・修正するにはまず、wp-content⇒themes⇒base-wp⇒ins⇒renderフォルダ内のtemplate-functions.phpをFFFTPソフトでダウンロードすること、そうして該当のソースを書き直すか削除するかしたらもう一度、アップデートすればいいことになる。

今回は上の部分のどこがどう間違っているのか分からなかったため、とりあえずまるっと削除してみると復旧することができた。けれどもところどころ表示がおかしいので、結局、別のテーマ(PaperCutsとかいう外国製のやつ)を使うしかなくなってしまった。

今回の教訓と今後の対策

強制的に新しいテーマにすることを余儀なくされたことで、以前のよりもなんとなくいい感じに仕上がったような気もするし、いろいろ勉強になったのである意味よかったのかもしれないが、今回のようなことは十二分に起こり得ることなので今後はアップデートした時に不具合があればすぐ元のバージョンに戻せるように、現在使っているテーマをバックアップしておこう。

Leave a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA