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でお困りのときはご相談を
この記事を書いた西沢直木が直接、WordPress個別サポートで対応します。
こんなときはご相談を
  • WordPressの使い方(ページやメニューの作り方を教えてほしい)
  • カスタマイズ(機能の追加やデザイン調整をお願いしたい)
  • トラブル対応(画面真っ白・「ログインできない」を解決したい)
マンツーマンなので相談内容は自由です。いただいた課題をその場で解決、CSSやPHPも目の前で修正します。気軽にご相談ください。
wordpress講座受講予約
WordPress講座の問い合わせ先

関連記事

BizVektorのカスタマイズ

WordPressカスタマイズ

WordPressによるサイト作成のヒント

WordPressプラグイン

スポンサーリンク
西沢直木によるWordPress講座の紹介
ホームページ作成講座WordPress個別サポート