WordPress の functions.php に処理を追加するとき、どうする?

こんにちは、阿久梨絵です!
WordPress の子テーマを作成するとき、functions.php に新しい処理を追加したい場合があります。
ここで悩むのが、「親テーマの functions.php をすべてコピーして編集すべきか?それとも追加分だけ記述すればいいのか?」という問題です。

本記事では、最適な方法を解説し、親テーマの functions.php を扱う際の注意点も紹介します。

親テーマの functions.php をコピーすべきか?

答え→コピーせずに、必要な処理だけ追加するのが正しい方法

親テーマの functions.php は、WordPressのロード時に 自動的に実行 されるため、
子テーマの functions.php には、変更・追加したい部分だけを記述するのが推奨 されます。

理由

1. 親テーマの functions.php はそのまま適用されるため、全コピーは不要
2. 子テーマ側で修正が必要な部分だけを functions.php に追加すればOK
3. 親テーマがアップデートされても、子テーマ側の functions.php は影響を受けずに動作

もし親テーマの functions.php を丸ごとコピーすると、アップデート時に不要なコードが混ざり、不具合の原因になることがある。

子テーマに処理を追加する方法

WordPressでは、親テーマの functions.php に定義された関数を フィルターやアクションで変更・追加 するのがベストプラクティスです。

1. 子テーマの functions.php に新しい処理を追加

例:親テーマの動作をそのまま活かしつつ、新しい処理を追加

<?php
// 親テーマの functions.php には影響せず、追加機能を定義
function my_custom_function() {
echo ‘<p>子テーマで追加した処理</p>’;
}
add_action( ‘wp_footer’, ‘my_custom_function’ ); // フッター部分に適用

親テーマの機能を維持しながら、子テーマの機能を追加
親テーマのアップデート時にも影響を受けない

2. 親テーマの関数を上書きする

親テーマに既存の関数があり、それを変更したい場合

<?php
// 親テーマの関数を無効化し、新しい関数を定義
function remove_parent_function() {
remove_action( ‘wp_footer’, ‘parent_function_name’ );
}
add_action( ‘after_setup_theme’, ‘remove_parent_function’ );

// 新しい関数を追加
function my_alternate_function() {
echo ‘<p>変更後の子テーマの処理</p>’;
}
add_action( ‘wp_footer’, ‘my_alternate_function’ );

remove_action() を使って、親テーマの関数を無効化
新しい関数を wp_footer に適用し、動作を変更

3. 親テーマの関数を拡張

親テーマの関数をそのまま使いながら、子テーマでカスタマイズ

<?php
function modify_parent_function($content) {
return $content . ‘<p>カスタムメッセージ</p>’;
}
add_filter( ‘the_content’, ‘modify_parent_function’ );

親テーマの the_content フィルターを使い、投稿の本文に追加処理を施す
親テーマの関数を変更せずにカスタマイズ可能

まとめ

子テーマの functions.php には追加分だけ記述すべき
親テーマの functions.php はそのまま適用される
不要なコピーを避け、影響を受ける部分だけ functions.php に記述する
フィルターやアクションを活用して、親テーマの機能を適切に変更・追加する

この方法を使えば、WordPress の親テーマのアップデートにも柔軟に対応できる ようになります。
阿久梨絵でした!

上部へスクロール
Verified by MonsterInsights