functions.phpを子テーマのフォルダにコピーすると画面が真っ白に!
子テーマを使ってWordPressをカスタマイズするときは、使いたいテンプレートファイルを子テーマにコピーして直すというのが一般的なイメージです。
たとえば、個別記事のレイアウトを修正したい場合はsingle.phpを子テーマフォルダにコピー、固定ページを直したい場合はpage.phpをコピーして編集します。
ただし、functions.phpだけは要注意です。親テーマのfunctions.phpは決して丸ごと子テーマフォルダにコピーしないでください!
うっかりコピーしてしまうと間違いなく画面が真っ白になります。または「Fatal error: Cannot redeclare」で始まるエラーメッセージが表示されます。
functions.phpの丸ごとコピーが禁止な理由
functions.phpは他のテンプレートファイルと異なり、テーマで使うための機能が定義されています。具体的には「function」という構文で定義されているのがテーマ独自の機能です。試しに、使用中のテーマのfunctions.phpを開いてみると次のような「function」で定義されたコードがいくつも見つかるはずです。
function biz_vektor_wp_css(){ …略… }
この「function」という構文で定義された機能には固有の名前(ここでは「biz_vektor_wp_css」)が付いており、その名前を呼び出すことで命令が実行されます。
正しく命令を実行するにはfunctionで作成した命令の名前が固有であることが必要で、同じ名前の命令が存在した場合は、どちらの命令を実行するのか判断できないためにエラーになります。
もう理解できたと思いますが、親テーマのfunctions.phpを丸ごと子テーマフォルダにコピーした瞬間に、同じ名前のfunctionが膨大に作成されることになるのでエラーが発生して画面が真っ白になります。
ご注意ください!