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に何か追加したい場合は、この状態から追加していきます。

カテゴリー: 質問と回答 | タグ: , | 投稿日: | 投稿者:
真中のぶ

真中のぶ について

The B.B.BoogieというバンドでVocalをしています。サーフィンもします。シングルフィンのクラッシックなロングボードに乗っています。ウェブデザイナーでもあります。タカハシ先生の一番弟子ですが時々すっとこどっこいな質問をして校庭10周と言われます。「パソコン倶楽部りんご」は僕が命名しました。ジョブズさんに敬意を表して。好きなcssはmargin{0 auto;}

wordpressの子テーマ function.phpについて(オーバーライドとは?)」への3件のフィードバック

  1. タカハシ先生タカハシ先生

    オーバーライドできる:親テーマにも子テーマにもhoge.phpがある場合、子テーマのhoge.phpが使われます。親テーマのhoge.phpは無視されます。
    functions.phpはオーバーライドできない:親テーマにも子テーマにもfunctions.phpがある場合、始めに子テーマのfunctions.phpが読み込まれ、続いて親テーマのfunctions.phpも読み込まれます。無視されません。

    実際のエラーについては、エラーが起きるソースをチェックしないと正確な事はわかりません。
    今度、ソースを見せてください。
    予想としては、おそらくfunctions.php内のスペルミスが原因でしょう。

    記事のタイトルや、記事中に出てくる「function.php」は、正しくは、「functions.php」です。
    文末の「phpとは違った特別なものっぽい。」とすべき所が、「pho」になってます。

    もちろん、記事内のスペルミスとコードのスペルミスは直接関係ありませんが、
    「ファイル名や関数名を正確に書かなくても平気な人なんだなあ。コードの方もスペルミスがありそうだなあ。」と予想できる投稿になっています。

    細かい事を指摘し続けると、恋人に嫌われますが、プログラミングは細かい事の積み重ねなので、
    一つ一つミスを潰していくしかありません。

    返信
  2. 真中のぶ真中のぶ 投稿作成者

    >実際のエラーについては、エラーが起きるソースをチェックしないと正確な事はわかりません。
    >今度、ソースを見せてください。

    親からコピペしただけなのでスペリングミスはないと思います。(記事は思いっきり間違ってますね〜)金曜日の勉強会でチェックお願いします。

    オーバーライド理解しました!

    返信

コメントを残す

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

CAPTCHA