チャオ(・∀・)♪
子テーマにsingle.phpやfooter.phpなどのファイルを作成したいのですが、どうやればいいですか?
今回は上記の質問に答えていきますが、結論としては「親テーマと同じ中身のファイルを作成すればOK」です。
ただし、functions.phpには要注意です。
目次
WordPressの子テーマにファイルを追加する方法
子テーマには最低限「style.css」「functions.php」が用意されていますが、例えば「single.php」などの別ファイルを追加したい時の手順は以下の通りです。
- 親テーマと同じ中身のファイルを作成する
- FTPなどを使ってサーバーにファイルをアップロードする
基本的にはこれでOKです。single.phpを子テーマに追加したいなら、親テーマのsingle.phpの内容をコピーして、新たに作成した子テーマ用のsingle.phpにペーストしてサーバーにアップして完了です。
テーマが読み込まれてサイトに反映される際の仕組みはざっくり下記の通りとなっています。
- まず親テーマのファイルが読み込まれる
- 次に子テーマのファイルを読み込む
- 子テーマにも同じ記述のファイルがあった場合、親テーマのファイルを上書きして、最終的に子テーマのファイルがサイトに反映される
ちなみに、子テーマにないファイルは、親テーマのファイルがそのまま読み込まれてサイトに反映されます。
なんで子テーマを作る必要があるの?と言えば、テーマのアップデートによるリスクを回避するためですね。
親テーマにカスタマイズなどの編集を行ってもいいのですが、テーマのアップデートの度に全て初期化されてしまいます。子テーマに行った編集は初期化されずにそのまま残るので、編集が無駄にならなくて済むというわけです。
基本的には子テーマを有効化してテーマ運用するのが常識となっています。
親テーマと子テーマの記述は必ず一致させること!
先に親テーマが読み込まれた後に子テーマが読み込まれると説明しましたが、もし子テーマのファイル内容が親テーマのものと一致していなかった場合、エラーを吐いてロールバック(巻き戻し)します。親テーマと子テーマのファイル内容は必ず一致させ、コードを追記する際は子テーマのファイルの一番下に行うのが原則です。
もともと親テーマの記述にあった内容が子テーマにもある前提で、最終的に子テーマの内容を反映させることを覚えておきましょう。
functions.phpは重複NG!
functions.phpとはサイト全体に対して何かを指定するための重要なファイルなのですが、これに関しては親テーマのものをそのままコピーして子テーマに持ってきてはダメです。記述させるコードは決められているからです。
子テーマに追加するfunctions.phpに関しては【コピペで終了】WordPressの子テーマの作成方法で解説しているので、ぜひ参考にしてみてください。
テーマのアップデートがあった際の注意点
子テーマに最低限必要な「style.css」「functions.php」以外にファイルを追加している場合は、
テーマのアップデートがあっても子テーマのファイルはアップデートされないという点に注意が必要です。
テーマの更新は親テーマのファイルだけが対象となっているため、更新によって親テーマと子テーマのファイル内容が一致しなくなるという事態も起こり得ます。最終的には子テーマのファイル内容がサイトに反映されるので、常に親テーマのファイル内容と一致させる必要があります。
親テーマからコピーしてきたファイルが多ければ多いほど、アップデートによってどの部分が更新されたかの確認作業が増えるので、そこがちょっとデメリットですね。そもそも更新されていないファイルもあるわけで、全て確認して貼り付け直すのは時間の無駄だとも言えちゃいます。
そんな時に便利なのが「Mergely(マージリー)」という、テキストの違いを瞬時に発見できるWebツールです。
使い方はとても簡単で、元となるテキストを左、そして違いを見つけたいテキストを右に貼り付けるだけです。

赤文字になった部分が元のテキストと違っていることを表しているので、どこが違うのかが一目で分かる仕様となっています。また違いを見つけるだけではなく、対象となる部分の行をクリックすることで、元のテキストと同じ内容に修正させることも可能です。
左に親テーマのファイル、右に子テーマのファイルを貼り付けて、違いを見比べてみましょう。もし更新によって親テーマの一部の記述が変更されていた場合、その箇所を瞬時に発見し、その変更箇所を子テーマの方にも適用させることができます。
汎用性が結構高いWebツールだと思うので、ぜひ一度使ってみてください。
まとめ
子テーマにファイルを追加する時や、ファイルの編集を行う時は、必ず作業前にバックアップを取ってください。バックアップにおすすめなプラグインは、復元が容易な「UpdraftPlus」だと言ったところで今回は終わりにしたいと思います。
それでは、ここまで読んでいただきありがとうございました。
チャオ(・∀・)
コメントを残す