Wordpressの子テーマの必要性:コア/サードパーティーに提供されたコードを変更しない
- Wordpress、および各種プラグインがよくアップグレードされます
- アップグレード時にソースコードがすべて上書きされます
- もし提供されたプラグインのソースコードを変更した場合に、アップグレード時にこれらのソースコードが全部消されます
- そのアップグレードに影響されずに、提供されたソースコードに変更しないことが鉄則です
- 提供されたテーマも同じアップグレードされるので、テーマを変更する前に、子テーマを作成します
子テーマを簡単に作成できます
- 元テーマ:Zerif を利用します
- 子テーマのフォルダー(zerif-lite-child)を新規作成します
- wp-content/themes/zerif-lite-child
- 子フォルダーの下に二つのファイルを新規作成します
- style.css :親テーマに関する記述
/* Theme Name: Zerif Lite Child Theme URI: Theme URI: https://www.themeisle.com/ Description: Zerif Liter Child Theme Author: old-pine Author URI: http://old-pine.net Template: zerif-lite Version: 1.0.0 */
- functions.php:親テーマの利用ロジック
<?php add_action( 'wp_enqueue_scripts', 'child_enqueue_styles',99); function child_enqueue_styles() { $parent_style = 'parent-style'; wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' ); wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array( $parent_style ) ); } if ( get_stylesheet() !== get_template() ) { add_filter( 'pre_update_option_theme_mods_' . get_stylesheet(), function ( $value, $old_value ) { update_option( 'theme_mods_' . get_template(), $value ); return $old_value; // prevent update to child theme mods }, 10, 2 ); add_filter( 'pre_option_theme_mods_' . get_stylesheet(), function ( $default ) { return get_option( 'theme_mods_' . get_template(), $default ); } ); } ?>
- 作成されたフォルダーとファイルは以下のようなイメージ
- style.css :親テーマに関する記述
- システムの外観管理画面で新規作成した子テーマを有効にします
プラグイン(Customizer Export/Import)で既存のテーマ設定情報を移行します
- 新規子テーマ作成する前に既存テーマにいろいろな設定を行ったかも知れないです
- プラグイン:Customizer Export/Import を導入して、テーマのエクスポートすることができます
- エクスポート時に既存のテーマを有効化します
- テーマカスタマイズ画面にある「エクスポート/インポート」メニューからテーマ情報をエクスポートします
- 子テーマを有効化して書き出されたテーマ情報をインポートします
- 同じようにテーマカスタマイズ画面にある「エクスポート/インポート」メニューからテーマ情報をインポートトします