タグ別アーカイブ: 子テーマ

wordpress

wordpressの子テーマ function.phpについて(オーバーライドとは?)

wenty twelveの子テーマを作りサイトをカスタム中です。

WPのthemesの中にtwenty-childというディレクトリを作り親からコピーしてきたstyle.cssを設置してそれでcssを上書きをしています。
header.phpとfooter.phpも同じように親からコピーしてtwenty-childというディレクトリに入れました。

念のためfunction.phpもコピーして子テーマtwenty-childに入れました。

function.phpはオーバーライドできませんとあります。
functions.php の使用方法

オーバーライド?….読んでもよくわかりません。ただコピーするだけじゃだめなんですか?

教えて下さい。

/////////////////////////
子テーマfooter.phpをカスタマイズしようとしたら、エラー表示が出てfunction.phpの77行目がおかしいと言ってた(多分)だからfooter.phpは上書きできないと。
だから子テーマのfunction.phpをいったん削除したら、問題なくfooter.phpのカスタマイズが出来ました。

function.phpは他のphoとは違った特別なものっぽい。(多分)

////////////////////////
2014-05-30 の勉強会で謎がとけました。

オーバーライドとは?

例えばfooter.phpやheader.phpは、オーバーライドできます。「オーバーライドできます」と言うことは親テーマに書いてある内容を読み込んで、さらに子テーマに上書きした内容も読み込みます。ということではありません!

オーバーライド「できる」という事は、親のファイルは「読み込まれず無視」されるという事です。

functions.phpがオーバーライドできないと言うことは、親テーマと子テーマに同じ内容のもの(functions.php)があると駄目なのです。どちらも読み込んでしまうから、「あんた同じものがあるじゃないのよ!」と叱られてしまうわけです。叱られないようにするには、子テーマのfunctions.phpには追加した内容だけ書くようにします。まず最初に子テーマのfunctions.php内には親テーマに書いてあることは、削除しておきます。こうしておけば同じものが2つあるわけじゃないので、叱られません。ほっ

下記のものは、親テーマfunctions.phpからコピーした子テーマfunctions.phpです。(親テーマの内容を削除した状態のものです。)
(注意!)コメントアウトの部分は削除しないでください。下記参照。

これで問題ありません!

子テーマfunctions.phpに何か追加したい場合は、この状態から追加していきます。