WordPress個別サポート

子テーマを使ってWordPressをカスタマイズするときは、使いたいテンプレートファイルを子テーマにコピーして直すというのが一般的なイメージです。

たとえば、個別記事のレイアウトを修正したい場合はsingle.phpを子テーマフォルダにコピー、固定ページを直したい場合はpage.phpをコピーして編集します。

ただし、functions.phpだけは要注意です。親テーマのfunctions.phpは決して丸ごと子テーマフォルダにコピーしないでください!

 親テーマのfunctions.phpは子テーマフォルダにコピーしてはいけない

親テーマのfunctions.phpは子テーマフォルダにコピーしてはいけない

うっかりコピーしてしまうと間違いなく画面が真っ白になります。または「Fatal error: Cannot redeclare」で始まるエラーメッセージが表示されます。

「Fatal error: Cannot redeclare」と表示される

「Fatal error: Cannot redeclare」と表示される

そんなわけで子テーマのサンプルには空のfunctions.phpが付属していることがあります。親テーマのfunctions.phpを丸ごとコピーせず、サンプルに付属した何も書かれていないfunctions.phpを使ってカスタマイズしていきましょう。
スポンサーリンク

functions.phpの丸ごとコピーが禁止な理由

functions.phpは他のテンプレートファイルと異なり、テーマで使うための機能が定義されています。具体的には「function」という構文で定義されているのがテーマ独自の機能です。試しに、使用中のテーマのfunctions.phpを開いてみると次のような「function」で定義されたコードがいくつも見つかるはずです。

function biz_vektor_wp_css(){
…略…
}

この「function」という構文で定義された機能には固有の名前(ここでは「biz_vektor_wp_css」)が付いており、その名前を呼び出すことで命令が実行されます。

正しく命令を実行するにはfunctionで作成した命令の名前が固有であることが必要で、同じ名前の命令が存在した場合は、どちらの命令を実行するのか判断できないためにエラーになります。

ちなみに、エラーメッセージの「Cannot redeclare」とは「同じ名前の命令は再定義できません」という意味です。

もう理解できたと思いますが、親テーマのfunctions.phpを丸ごと子テーマフォルダにコピーした瞬間に、同じ名前のfunctionが膨大に作成されることになるのでエラーが発生して画面が真っ白になります。

ご注意ください!

この記事をSNSで共有する
WordPressでお困りのときはご相談を
細かい質問からCSSやPHPのカスタマイズ、トラブル対応まで、この記事を書いた西沢直木が直接、WordPress個別サポートで対応します。
WordPress個別サポートの特徴
  • 最短で本日中に問題解決できます
  • 見積もり無料・料金は終了後の後払いです
  • 銀座教室・スカイプ・出張またはメールで対応します
トラブル解決でお急ぎのときは
お急ぎのときはWordPressメールサポートで対応します。ご活用ください。
こんなときはご相談ください(相談・見積もり無料)
  • ログインできなくなった
  • 画面が真っ白(500エラー)になった
  • 間違ってサイトを消してしまった
  • 引っ越し・SSL対応がうまくいかない
  • CSS・PHPのカスタマイズがうまくいかない
WordPress講座の問い合わせ先
WordPress講座申し込み
メールで問い合わせ

関連記事

スポンサーリンク