WordPressのfunctions.phpが上書きされないように子テーマを作成する

WordPress のテーマやカスタマイズについて全く知識がなかったので
google の広告を表示するための関数を親テーマの functions.php に直接記述していました。

そのため、テーマの更新の度に functions.php に追記したショートコードが消えるという事態が発生していました。
今回はそれを回避するために、子テーマを作成します。

やることは下記の3つです。

1.wordpress/wp-content/themesに子テーマのディレクトリを作成
2.子テーマのディレクトリに style.cssを作成
3.子テーマのディレクトリに functions.php を作成

では詳細を見ていきましょう。

———————————広告———————————

———————————広告———————————

1.wordpress/wp-content/themes に子テーマのディレクトリを作成

そのままですが子テーマのディレクトリを作成します。
私は親のテーマとして twentyfourteen を使用しているため、
my-twentyfourteen というディレクトリを作成しました。
作成後の状態はこんな感じです。

2.子テーマのディレクトリに style.css を作成

子テーマのディレクトリを作成しましたら、次は子テーマで使用するスタイルシートを作成します。
今回は特に新たに定義することもないのでファイルの中身はシンプルです。

Theme Name はテーマの管理ページで表示される名称です。お好きなようにつけて下さい。設定次第かも知れませんが日本語でつけると私の環境では文字化けしました。

Template は元にする親テーマのディレクトリ名をつけて下さい。ここは間違えるとエラーになり正しく表示されなくなりますので間違えないようにしましょう。

3.子テーマのディレクトリに functions.php を作成

次に functions.php を作成します。
中身はこんな感じです。

add_action 関数の呼び出しと関数 theme_enqueue_styles は中身をそのままにして上の通りに記述してください。
この記述がない状態だと親のスタイルシートが読み込まれず正しく表示されなくなります。

上記の記述をした後に続けてショートコードを追加すればそのまま使えるようになります。
子テーマに記述した関数なので親テーマを更新しても、このファイルに影響が及ぶことはありません。

style.css に import を記述して親テーマの スタイルシートを読み込むやり方は現在では使用が推奨されていないようです。
必ず functions.php の中に wp_ecquere_scripts を書いて読み込むようにしてください。

上記手順を全て終えたら、テーマの管理ページを開いてみましょう。
Theme Name で指定した名称のテーマが作成されているはずです。
ライブプレビューで表示や追加したショートコードに問題がないことを確認したら有効化して反映させましょう。

これで親テーマを更新しても functions.php に影響を及ぶことはなくなりました。お疲れ様でした。

コメントを残す

メールアドレスが公開されることはありません。