MENTAやTimeTicketでZoomオンライン指導・メンタリングを行っています。
WordPressやHTMLサイトのトラブル、SEO対策のご相談、HTML・CSS・WordPressなどのレクチャーなどが可能です。


【koto様】WordPress子テーマのfunctions.phpについて

WordPressで子テーマをカスタマイズ中に、functions.phpをアップしたらサイトが見られなくなった・・・というご相談を頂きました。

ワードプレスで子テーマを使うメリットや、使う際に注意する点をまとめました。

質問:functions.php子テーマにアップロードしたらエラーに

WordPress初心者です。
現在、Lightningテーマを利用中でカスタマイズは子テーマでしております。
今回functions.phpに追加コードを記述をしようと開いたらコードが全て空っぽになっておりました。
そこで、親テーマからfunctions.phpをダウンロードして子テーマにアップロードしたら、
Fatal error: Cannot redeclare lightning_home_content_hidden() ようなエラーが出てサイトが見れなくなりました。
元のfunctions.phpに戻したいのですが、どのようにすればよいかご教示ください。
宜しくお願い致します。


>koto様
ご質問ありがとうございました。
子テーマを作成して使う上で、いつくか注意点があります。

ポイントを解説させて頂きます。

子テーマを作るメリットとは

子テーマを作るメリットは何と言っても親テーマのアップデートの影響を受けにくい点にあります。

親テーマを直接カスタマイズすると、テーマをアップデートした際に変更点が失われて(上書きされて)しまいます。

そのため、既存テーマを利用しサイト運用していくうえでは子テーマを作ることが多いでしょう。

子テーマの作り方

子テーマを作る方法は非常にシンプル。

1.子テーマ用のフォルダを用意する
仮に親のテーマ名をParentTheme
フォルダ名をparent とします。

子テーマ名をChildTheme
フォルダ名をchildとします。

2.style.cssを用意し、先頭行に以下の記述を追加します。

/*
 Theme Name:   ChildTheme
 Theme URI:    
 Description:  
 Author:       
 Author URI:   
 Template:     parent(フォルダ名であることに注意)
 Version:      
 License:      
 License URI:  
 Tags:         
 Text Domain:  
*/

最低限”Template”で親テーマのフォルダが指定されていれば子テーマは動作するでしょう。

以前は

@import url('../parent/style.css');

のような形でCSSをインポートする形が一般的でしたが、現在は推奨されていません。以下のfunctions.phpを利用する方法がコーデックスで紹介されています。

3.functions.phpを作り親のCSSを読み込む記述を追加
WordPress Codex 子テーマ

同名のファイルがあれば、子テーマのファイルを優先して読み込む

ここまでで、子テーマフォルダの中にはstyle.cssとfunctions.phpしかありません。

子テーマの仕組みは、「まず親テーマが読み込まれ、子テーマに同名のファイルがあればそれが読み込まれる」と考えて頂ければスムーズです。

親テーマにも子テーマにもfooter.phpがある場合、子テーマのfooter.phpが優先されます。

カスタマイズしたいテンプレートファイルだけを子テーマにコピーしてカスタマイズするという流れになります。

functions.phpの扱いについて

ただし、functions.phpは単なる上書きではなく、親テーマのfuctions.phpにある関数も、子テーマのfuctions.phpにある関数も両方読み込まれます。

そのため、質問者様のように親テーマのfunctions.phpを子テーマにそのままアップロードすると、エラーになります。(同名の関数が2回実行されることになる)

子テーマがご自身で作成されたのか、誰かに依頼したのか、僕はLightningを使ったことがないのでわかりませんが、子テーマのfunctions.phpはおそらくデフォルトではほとんどが空白であると思われます。

空白のfnctions.phpに、追加したい関数を記述する方法になるでしょう。

こちらもやはりコーデックスをご一読頂いた方が良いかと思います。

WordPress Codex 子テーマ

ご参考になれば幸いです。

おすすめコンテンツ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA