WordPressの開発環境によって子テーマで使用するfunctions.phpの書き方が違う。という記事を公開したところ何人かの方から、WordPressの親テーマと子テーマの関係について、アドバイスをいただきました。
そのアドバイスを読んでいるうちに、自分が書いた内容について2つの誤りがあることに気がつきましたので、それぞれ訂正いたします。
訂正その1(比較する前提の誤り)
まことにおそれいいります。比べる前提が間違っていました。
比べるべきは「開発環境」ではなく、「WordPress.orgの公式ディレクトリに掲載されているテーマ(公式テーマ)」の方でした。
具体的には公式テーマが「Twenty Twelve」か、「Morphic」であるかによって、functions.phpの記述が違うと書かなければなりませんでした。
子テーマの適用については、Wockerか、さくらのVPSかは関係がないということです。なお、Twenty TwelveとMorphicを取り上げているのは、個人的な好みです。
訂正その2(記事の誤記述)
前回の記事で、「仮想専用サーバ(VPS)の場合」というh2見出しのところに、style.cssのh4見出しがあって読み込むテーマ名が書かれています。このテーマ名が間違っています。
/* Theme Name: Twenty Twelve Child Template: twentytwelve */
となっていますが、
/* Theme Name: Morphic Child Template: morphic */
と書くべきでした。
functions.phpの比較
ちなみに子テーマを適用させるためのfunctions.phpについて、Twenty TwelveとMorphicを比べていると、両者に違いがあることがわかりました。
Twenty Twelveでは、どちらの記述を使っても子テーマを読み取ることができますが、
[php]
function child_theme_styles() {
wp_dequeue_style( ‘match-style’ );
wp_enqueue_style( ‘parent-style’, get_template_directory_uri() . ‘/style.css’ );
wp_enqueue_style( ‘child-style’, get_stylesheet_uri(), array(‘parent-style’), ‘1.0.1’ );
}
add_action( ‘wp_enqueue_scripts’, ‘child_theme_styles’, 20 );
[/php]
[php]
add_action( ‘wp_enqueue_scripts’, ‘theme_enqueue_styles’ );
function theme_enqueue_styles() {
wp_enqueue_style( ‘parent-style’, get_template_directory_uri() . ‘/style.css’ );
}
[/php]
Morphicでは、こちらの書き方のみ適用されます。
[php]
function child_theme_styles() {
wp_dequeue_style( ‘match-style’ );
wp_enqueue_style( ‘parent-style’, get_template_directory_uri() . ‘/style.css’ );
wp_enqueue_style( ‘child-style’, get_stylesheet_uri(), array(‘parent-style’), ‘1.0.1’ );
}
add_action( ‘wp_enqueue_scripts’, ‘child_theme_styles’, 20 );
[/php]
親テーマにより子テーマの作法が異なるようですね。一番肝心な「なぜそうなるのか?」はまだわかっていませんが、まずは備忘録として書き残しておきます。関係者のみなさま、ありがとうございました。
〔参考サイト〕