質問: 子テーマでphpファイルの再定義 初心者です。 現在ウェブサイトをwpにて構築しております。 ヘッダー部分のコードを編集したく、 子テーマにheader-logo.phpというファイルを格納し編集しようとしました。 ただ、このファイルが、親テーマのfunction.phpでrequire_onceにて定義してあるため、子テーマのfunction.phpで再定義しようとすると、下記の通りエラーが出てしまいます。 ****************************************エラー内容******************************************* wp-content/themes/law_tcd031/functions/header-logo.php ファイルの447行目のエラーのため、php コードの変更をロールバックしました。修正し、もう一度保存してください。 cannot redeclare _dp_get_upload_err_msg() (previously declared in wp-content/themes/law-child/functions/header-logo.php:447) ****************************************エラー内容******************************************* 恐らく、親テーマでも同じ関数定義があるため、エラーとして出てきていると思うのですが、認識あっていますでしょうか。 本件に関して、親テーマを編集せずに、子テーマにあるファイルをrequireすることは可能でしょうか。 お忙しい所大変申し訳ありませんが、ご教授いただけると幸いです。
回答: wpで子テーマを使う意義は正しく今回の様なケースに柔軟に対応出来る点にあります。エラーの原因は既に質問者が理解している通りですので、解決策は至って簡単、その重複している関数名を変更してやれば良いのです。 この場合は親テーマはそのままに、子テーマの header-logo.php の該当部分を何か適当な違う関数名に書き換えて再保存すればokです。ただし修正する場合、直接エラー表示が出た部分のみだけでは無く、ちゃんと子テーマ側の全てのphpファイルを調べて同じ関数名の記述が他にもないか調べて、あればそれも含めて全て一律に同じ関数名に修正して置く必要があります。