Wordpressのテーマを可逆的に編集する。
子テーマという機能を使います。
元のテーマ(親テーマ)を部分的に書き換えられます。
子テーマに同じ項目があれば、そちらを使用するようになるので
親テーマは書き換えなくても済むので可逆的に編集できる。
子テーマ用のフォルダを作る。
まずは親テーマと同じディレクトリに並列になるように子テーマのディレクトリを作る。
私はstorkというテーマを使っているので、、親テーマの入っているstorkというフォルダと同じ階層にstork_childという新しいフォルダを作る。(親テーマの中には入れてはいけない。)
style.cssを作る。
stork_childの中にstyle.cssファイルを作る。
中には
/*
Theme Name: stork child
Template: stork
*/
@import url('../jstork/style.css');
Theme Nameには子テーマの名前(フォルダ名ではない) と Template(親テーマのフォルダ名)が必要。
functions.phpを作る
これで読み込みができるようになる。
中身は以下のコード。
<?php
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
wp_enqueue_style( 'style', get_template_directory_uri() . '/style.css' );
wp_enqueue_style( 'child-style',
get_stylesheet_directory_uri() . '/style.css',
array('style')
);
}
stork_childフォルダはwp-content/themesの中に入っていて、その中にstyle.css、functions.phpの二つが入れば準備完了。
子テーマでCSSを書き換える
親テーマのCSSの後に子テーマのCSSを読み込む。
同じ項目が子テーマにあれば、後から読み込まれた方を採用するので親テーマの項目を上書きすることになる。
PHPファイル
header.php、single.phpなど同じテーンプレートファイルが子テーマ内にあると、親テーマからは読み込まれない。
ただしfunctions.phpだけは親・子テーマ両方のものを読み込む。
親テーマから子テーマにコピーして必要な箇所を編集する。
テーマのアップデートの時に子テーマで編集していれば、上書きされてしまうことを防げる。でもアップデートした新機能は使えないかも。
コーヒー飲みます。ありがとうございます。