ブログ

functions.phpの編集失敗!画面を真っ白にする前に場所を確認しておこう

functions.phpを編集してWordPressのカスタマイズをするときに、記入ミスなどで構文エラーを出してしまうとダッシュボードにすらたどり着けなくなります。

エラーでブログ画面を真っ白にしてしまって、動悸や手の震えでまともに解決方法が見つけ出せなくなってしまう前にfunctions.phpの場所を確認しておきましょう。

すでに、真っ白にしてしまってこのブログにたどり着いている方は、FTPでfunctions.phpの確認まで移動してください。ブログが復旧することをお祈りします。

ゆっくりくん
ゆっくりくん
バックアップで復旧しなかったときはブログの閉鎖まで考えた

ほとんど私への戒め記事です。

WordPressのカスタマイズ

functions.phpを気軽にいじった悲劇

WordPressでカスタマイズをしようとするときに、やりたいことをネット検索して探します。

ゆっくりくん
ゆっくりくん
自力でやりたいことができる人は、こんな記事見ない

検索結果のページには「functions.phpに下記のソースをコピペしてください」と、かんたんに書かれていることでしょう。

WordPressを使い始めて半年ほど経っていた私は、phpをCSSやHTMLと同じ程度にしか考えていませんでした。

ゆっくりくん
ゆっくりくん
うまくいかなければ、書き直せばいいじゃない

その考えがとんでもない悲劇をうみました。

【失敗】ダッシュボードから functions.phpをいじった

「外観」の項目を進んでいくと「テーマのための関数(functions.php)」という項目がありますので、ここからfunctions.phpを直接コードを書き加えることができます。

カスタマイズで見つけてきたコードをサクサクコピペしていきます。

functions.phpを保存して、ダッシュボードに戻ります。すると。

はい、画面が真っ白になってしまいました。

ゆっくりくん
ゆっくりくん
今考えると、クソどうでもよいカスタマイズ

ここで編集に失敗すると、ダッシュボードに戻れなくなります。
「外観」からの編集はphpに慣れてからにしましょう。

「外観」

「テーマ編集」

「テーマのための関数(functions.php)」

エックスサーバーのバックアップを試した

WordPressを使うときにすべての作業をダッシュボード内でおこなっていたので、バックアップのデータを戻すしかないと考えました。

データベースの復元を試みましたが、復旧しませんでした。

WordPressのテーマを壊しているのにデータベースを復元しても直るわけがないのですが、そんな当たり前のこともわからないくらい気が動転していました。

ファイルマネージャからfunctions.phpを探す

このときはすでに夜になっており、だんだん時間が経っていきました。もう最終手段はテーマを再インストールするしかないと思っていました。

WordPressのテーマはJINを使っていますが、いったん他のテーマに切り替えてから再インストールすればおそらく直ったと考えられます。

しかし、直す道筋が見えてくると余裕が出てきたのか、functions.phpを壊すだけでテーマの再インストールをすることに違和感を感じました。

今後のことも考えて、functions.phpをファイルマネージャから探すことにしました。functions.phpを元どおりに編集することができれば、WordPressのテーマを復旧させることができます。

エックスサーバーインフォパネル

エックスサーバーはインフォパネルから、かんたんにファイルマネージャに入ることができます。

しかしファイルマネージャの中の階層を見たときに、何もわからないところから自力で探すのは無理だと感じました。

Twitterに助けを求めると、ひちょこ@hichocosan)さんが数分で答えを教えてくれました。

ゆっくりくん
ゆっくりくん
ひちょこさん、ほんとうにありがとう

FTPでfunctions.phpの確認

functions.phpがある場所

/(WordPressがインストールされているドメイン)
/public_html
/wp-content
/themes
/(テーマ名)
/functions.php

画像はエックスサーバーのFTPです。どのサーバーもFTPにログインすれば同じように探すことができます。

対象のドメインを選択します。当サイトは「slowlylastspurt.com」ですのでここを選択しました。

functions.php

public_htmlを選択します。

functions.php

wp-contentを選択します。

functions.php

themesを選択します。

functions.php

JINの子テーマを使用していますので、jin-childを選択します。使用するテーマによって名称が変わります。

カスタマイズの予定がなくても子テーマを使いましょう

functions.php

functions.phpがありますので、元どおりに編集しましょう。

場所がわかってから3分でWordPressのテーマは復旧しました。

ゆっくりくん
ゆっくりくん
動悸が止まらず、1時間はテンションおかしかったけどな

Search Consoleのサイトマップエラー(後日談)

翌日サーチコンソール(Search Console)のサイトマップがエラーになっていることに気づきました。

緊急な案件ではありませんが、精神衛生上良いものではありませんので、のんびり調べました。

Google XML Sitemapsを使ってサイトマップを送信していますので、まずプラグインを疑いました。

ネット上にはバージョンダウンで直る、新しいバージョンではサイトマップの位置が変わっているから違うファイルをサーチコンソールに送信するなど、ネットの情報が錯綜していて振り回されました。

Google XML Sitemapsの最新バージョンにして時間がかなり経っているのに、急にサイトマップがエラーになるのもおかしいので、セオリーどおり直前の変更を疑うことにしました。プラグインもバージョンを古くしておくと気持ち悪いですので最新に戻しておきました。

phpの軽微なエラー

functions.phpの構文を穴が開くほど、眺めます。

ゆっくりくん
ゆっくりくん
もう見たくもないのに

すると、functions.phpの記述の中でおかしいところがありました。

phpの命令は、<?php  命令  ?>で囲まれていますが、修正したfunctions.phpにはなぜか「?>」がありませんでした。

追記して、サイトマップを再送信するとエラーはなくなりました。

ゆっくりくん
ゆっくりくん
やれやれ

まとめ

functions.phpは少し間違えるだけで、大変なことになります。

「コピペするだけで」という甘い言葉に惑わされないように、慎重にカスタマイズするようにしましょう。

管理画面内にある「外観」からfunctions.phpを編集することは、強く推奨しません。