なぜfunctions.phpを管理画面から編集できるようになっているのか理解に苦しむのですが、扱いに気をつけないとサイトが機能しなくなります。
例えば、
- エラーメッセージが出て、サイトにアクセスできない
- 画面が真っ白になる
- ログイン画面が開けない
など。
とりあえず、記述ミスるとURLからサイトにアクセスすることが不可能になります。
ですから基本的にはサーバーにアクセスして編集した方がいいのですが、いずれにしてもfunctions.phpを修正する上で気をつけておきたいポイントがあります。
どういう時にエラーが大きるか分かれば対処もしやすいでしょう。
WordPressのエラーパターンです。慌てず冷静に原因を探りましょう...
functions.phpでエラーになるパターン
同じ関数名を定義
同じ関数名を指定するとエラーになります。「定義が重複しているよ!」と怒られます。
Fatal error: Cannot redeclare hoge() (previously declared
<?php
function hoge() {
}
function hoge() {
}
?>
構文の誤り
phpの記述を誤ると怒られます。プログラミングする人なら何千回と見てきた「syntax error」のメッセージとともにアクセスできなくなります。
Parse error: syntax error
このエラーメッセージが出たときは、追加したコードに誤りがないか目を凝らして確認しましょう。
ファイルに無駄な空白、空行を作らないこと
以下のような<?php ?>
で囲まれていな部分に余計な空白や空行があるとエラーになるみたいです。
<?php
function hoge() {
}
?>
エラーメッセージとしては以下のような感じ。
Warning: Cannot modify header information – headers already sent by (output started at /path/wp-content/themes/my-themes/functions.php:xxx) in /path/public_html/wp-includes/pluggable.php on line xxxx
※ 自分の環境では確認できず・・・
UTF-8、BOMなしで保存
functions.phpは「UTF-8」「BOMなし」で保存してください。さもなければ、エラーになるそうです。
※ 自分の環境では確認できず・・・
エラーが起きた時(画面が真っ白になった時)の対処方法
WP_DEBUGを使う
画面が真っ白な人は、どこでエラーが発生しているか確認するためにエラーメッセージを表示できるように設定を変更しましょう。
以下の通り編集します。記述がなければ追記しましょう。
wp-config.phpdefine( 'WP_DEBUG', true );
ファイルの場所はwp-contentとかと同じ階層です。
function.phpを修正
エラーメッセージから、エラーの原因やエラーの場所が分かったらfunctions.phpを編集していきます。
functions.phpの場所は以下の通り。/wp-content/themes/my-theme/functions.php
紹介したエラーのパターンを参考に修正してください。
たいていの場合は、追加したところが問題だったりするので、追加したコードをゴッソリ削除すれば元に戻ります。
functions.phpを編集する時の注意点
サーバー上で編集すること
phpに詳しくて慣れている人でも、ちょっとした構文ミスや同じ関数名で作っちゃったりといったことはあります。
エラーが起こる前提で考えた時に、サーバーから編集した方がリスクは少ないです。なによりエラーになった時のストレスが違いますね。
管理画面からだったら更新した瞬間にもう何もできなくなりますからね。「うっっぜええええ」。
ということでサーバーで直接修正しましょう。エラーが出たらすぐに元に戻せます。
バックアップ取りましょう
日頃からバックアップをとっておくことが大事ですが、少なくともファイルを修正する前はローカルに残しておくようにしましょう。
エラーが出た → 修正した → まだ直らない → さらに修正 → 泥沼(もうどこがエラーかわからないよー) → もとの状態に戻したいだけなのに・・・
という状態に初心者のころはよく陥ってました。修正前のファイルが手元にあれば一瞬で解決することを半日かかったり。
バックアップは基本です。何かを修正する前は必ずバックアップを取る癖を付けましょう。
おわり
functions.phpを修正に関して、
- 起こりがちなエラー
- エラーが起きた時の対処方法
- 修正する上で気をつけること
を紹介しました。
WordPressの初心者のみならず、中級者くらいの人も画面真っ白にしてたりします。面倒でもサーバーと繋ぎならが編集する癖をつけるとよいでしょう。