ワードプレスのfunctions.phpをいじってワードプレスにログインできなくなった話
先日、別で運営しているブログに導入したいプラグインがあったので色々調べていると、functions.phpにコードを追加するだけで導入できると言う記事がありました。
PHP自体の知識もありませんし、「バックアップさえとっておけばいけるだろう」と安易にfunctions.phpにコードを追加して更新した結果・・
はい、見事にワードプレス自体にログインできなくなりました。
画面に表示されるのはParse error:syntax errorから始まるエラー文字だけ。
サブとは言えかなり焦りました。そこで対処法などを調べて対処したつもりが、今度はWarningから始まるエラーが表示される始末・・。
「コード追加する前に時間を戻せたら・・」
と呟きながら、
「否!このままでは引き下がれない!貴様はトラブルシューティングを解決した時の爽快感を味わいたくないのか?」
といつもの全く根拠のない「俺ならできる」理論で見事突破してやりましたので、覚え書きも含めて書いておきます。
※今回の記事は、私の場合のエラー解決です。私の場合、functions.phpの最後の行にコードを追加してエラーとなりました。
■目次■
1.Parse errorの対処法
2.Warningの対処法
3.あとがき
Parse errorの対処法
functions.phpに追加したコードを覚えている、もしくはデフォルトのfunctions.phpのバックアップを取っていれば復元できるかと思います。
FTPソフトを使います。手順は以下です。
- ①FTPソフトでワードプレスサーバーにアクセスする
- ②ローカルに保存してあるデフォルトのfunctions.phpをアップロードして上書きする、もしくは、追加したエラーコードを削除する
基本はこれだけでいいのですが、それでもまだエラーが出る場合の対処法も書いておきますのでゆっくり読んでみてください。
まずはffftpと言うソフトを使います。初心者の方などはFTPソフトって名前が出た時点で難しそうだなと感じるでしょうが、大事なブログを取り戻す為にも使って覚えた方がいいです。
あと、サーバー管理、データのバックアップを取る際にも使いやすくて便利です。
サーバーの管理画面にあるファイルマネージャーなどからも同様の操作は出来ますが、ffftpは非常に使いやすいので私はいつもffftpでサーバーファイルを操作しています。
ffftpについては別記事に使い方を書いていますので参考にしてください。
デフォルトのfunctions.phpをバックアップしている場合
まずはffftpを起動してサーバーにアクセスします。
サーバー側を選択し、エラーに表示されているパスへ移動します。
例えば、Parse errorの文字列に、
example.com/wp/wp-content/themes/twentysixteen/functions.php
と表示されている場合はexample.comのフォルダから順に開いて行きます。
次にローカル側を、デフォルトのfunctions.phpをバックアップしているパスに移動します。
ローカル側にあるfunctions.phpをサーバー側にドラッグ&ドロップして上書き保存します。
追加したコードを削除する場合
サーバー側のfunctions.phpをダブルクリックして、追加したコードを削除し上書き保存します。
Warningの対処法
私の場合、デフォルトのfunctions.phpを上書き保存した後にWarningから始まるエラーが出ました。
「警告!?えっ?これやばいでしょ!」
とこの時の方が焦りました。
しばし冷静になって調べていると、どうやらPHPコードに改行が入っていると出るみたいです。
こちらのブログを参考にさせて頂きました。
そこでエラーの最後に表示されている行数を確認するとやっぱり改行が入っていました。
この場合、php.iniのoutput_bufferingを設定変更することで解決しました。
ffftpで見ると、php.iniはおそらくサーバー側の上位層にあると思います。
それを開いて、
output_buffering = off
になっている場合は、
output_buffering = on
に変更して上書き保存します。output_bufferingがない場合は追加して上書き保存します。
これでやっとブログのログイン画面も表示され見事に復活しました。
ちなみに上画像のphp.iniにupload_max_filesizeと言う項目がありますが、ここの数字を変えるとワードプレスにアップロードできるファイルサイズを変更できます。
デフォルトだとアップロードサイズが制限されていますので、変更したい場合は数字を変えるだけでOKです。
あとがき
うん、やっぱりfunctions.phpは素人がいじるもんじゃないと痛感しました(笑)
バックアップを取っていてもこれですからね・・
結局、自分で調べてトラブルシューティングしないといけないし、今回私の場合はなんとか元に戻りましたが、コードのいじり方によっては最悪戻らないかも知れません。
非常に怖いですね。
確かに便利なプラグインは山ほどあるので、できる限りインストールせずに導入したいですけど、こんなトラブルに遭遇するくらいなら普通にプラグインをインストールした方がマシです。
プライグインなしの導入方法を説明しているブログなどを見ると、「事前にバックアップを取ってください!」と注意喚起しています。
ただし、PHPに明るくない人はバックアップを取っておいてもおすすめできません。その後にエラーが出ない保証はなく、自己解決するしかないからです。
HTMLやCSSをいじるのとは訳が違いますからね(汗)
今回の私がそうでした・・
なにが「トラブルシューティングを解決した時の爽快感」だよ!むしろ冷や汗流しながら最終的にホッとしただけだわ(笑)
ドラクエ3のセーブデータが消える効果音が流れた瞬間に電源切って、祈る思いで入れなおしたら奇跡的にセーブが1つだけ残っていた。
あの頃を思い出しましたわ~
とにかくプラグインなしでfunctions.phpをいじって導入する方法は安易に試さない方がいいです。
以上です。