1. TOPTOP
  2. Webサービス

【訂正記事】WordPressの開発環境によって子テーマで使用するfunctions.phpの書き方が違う。

Wapuu

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では、どちらの記述を使っても子テーマを読み取ることができますが、

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 );
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
}

Morphicでは、こちらの書き方のみ適用されます。

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 );

親テーマにより子テーマの作法が異なるようですね。一番肝心な「なぜそうなるのか?」はまだわかっていませんが、まずは備忘録として書き残しておきます。関係者のみなさま、ありがとうございました。

〔参考サイト〕