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です。(親テーマの内容を削除した状態のものです。)
(注意!)コメントアウトの部分は削除しないでください。下記参照。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
<?php /** * Twenty Twelve functions and definitions * * Sets up the theme and provides some helper functions, which are used * in the theme as custom template tags. Others are attached to action and * filter hooks in WordPress to change core functionality. * * When using a child theme (see http://codex.wordpress.org/Theme_Development and * http://codex.wordpress.org/Child_Themes), you can override certain functions * (those wrapped in a function_exists() call) by defining them first in your child theme's * functions.php file. The child theme's functions.php file is included before the parent * theme's file, so the child theme functions would be used. * * Functions that are not pluggable (not wrapped in function_exists()) are instead attached * to a filter or action hook. * * For more information on hooks, actions, and filters, @link http://codex.wordpress.org/Plugin_API * * @package WordPress * @subpackage Twenty_Twelve * @since Twenty Twelve 1.0 */ /** * Twenty Twelve setup. * * Sets up theme defaults and registers the various WordPress features that * Twenty Twelve supports. * * @uses load_theme_textdomain() For translation/localization support. * @uses add_editor_style() To add a Visual Editor stylesheet. * @uses add_theme_support() To add support for post thumbnails, automatic feed links, * custom background, and post formats. * @uses register_nav_menu() To add support for navigation menus. * @uses set_post_thumbnail_size() To set a custom post thumbnail size. * * @since Twenty Twelve 1.0 */ |
これで問題ありません!
子テーマfunctions.phpに何か追加したい場合は、この状態から追加していきます。