WordPressのfunctions.phpを安全に編集する方法

WordPressのfunctions.phpを安全に編集する方法

functions.phpはWordPressテーマの「機能追加ファイル」

functions.phpは、WordPressテーマに機能を追加・拡張するための特別なファイルです。PHPコードを記述することで、テーマの動作やWordPressの挙動をカスタマイズできます。

例えば、ウィジェット追加・ショートコード作成・管理画面のカスタマイズ・セキュリティ強化など、プラグインを使わずに実装できる処理を記述できます。

ただし、functions.phpは読み込み時に必ず実行されるファイルのため、記述ミスがあるとサイト全体が停止(致命的エラー)するリスクがあります。安全な運用方法を理解した上で編集することが重要です。

functions.phpの基本構造(重要)

functions.phpでは主に「フック(hook)」を使って処理を追加します。

// アクションフック(処理を追加)
add_action('wp_head', function() {
    echo '<!-- custom code -->';
});

// フィルターフック(値を書き換える)
add_filter('the_title', function($title) {
    return $title . '【追記】';
});

このように、WordPressの既存処理に「後付けで機能を差し込む」仕組みが基本になります。

functions.phpを直接編集してはいけないケース

親テーマのfunctions.phpを編集する

テーマ更新時に上書きされ、追加したコードがすべて消えます。必ず子テーマで管理してください。

テーマエディターから直接編集する

管理画面のエディターはエラー時の復旧が難しく、画面が真っ白になると修正不能になります。実務では使用しません。

安全な編集方法

方法①:子テーマのfunctions.phpを使う(推奨)

子テーマのfunctions.phpは、親テーマの後に読み込まれるため、上書きや拡張が安全に行えます。

※親テーマのfunctions.phpは置き換えではなく「両方読み込まれる」点が重要です。

方法②:Code Snippetsプラグインを使う

コードを個別に管理でき、エラー時は該当スニペットだけ停止できます。functions.phpを直接触らないため、安全性が高い方法です。

編集前のチェックリスト(必須)

  1. 完全バックアップを取得
  2. functions.phpをローカル保存
  3. ローカル or ステージング環境でテスト
  4. 構文チェック(シンタックスエラー確認)
  5. 変更は一度に1つずつ行う

よくあるエラーと原因

セミコロン(;)の付け忘れ

// NG
$var = 'test'

// OK
$var = 'test';

括弧・波括弧の不一致

() {} [] の対応がズレると即エラーになります。エディタの補完機能を活用してください。

関数名の重複(致命的)

// NG(既存と衝突する可能性)
function custom_function() {}

// OK(プレフィックスを付ける)
function revit_custom_function() {}

WordPressでは関数名の衝突が原因のエラーも非常に多いため、必ずプレフィックスを付けてください。

サイトが真っ白になった場合の復旧方法

  1. FTPまたはサーバー管理画面にアクセス
  2. /wp-content/themes/使用中テーマ/ を開く
  3. functions.phpを編集または差し替え
  4. 直前のコードを削除または元ファイルに戻す

※管理画面に入れない場合でも、FTP経由なら復旧可能です。

functions.phpに書くべき処理・書くべきでない処理

  • 書くべき:テーマ依存の処理(表示・UI・軽微なカスタマイズ)
  • 書くべきでない:サイト全体のロジック(→ プラグイン化推奨)

再利用性がある処理や重要ロジックは、functions.phpではなくオリジナルプラグインとして分離するのがベストプラクティスです。

まとめ

functions.phpは強力なカスタマイズが可能な反面、扱いを誤るとサイト全体に影響します。子テーマまたはCode Snippetsで安全に管理し、「小さく追加・必ず検証」を徹底することが重要です。

実務では「functions.phpに書くべきか?」の判断も重要になります。設計段階で迷う場合は、専門家に相談することで安全かつ効率的に実装できます。

WordPressのトラブルやホームページのお悩みはRevitにご相談ください

LINEで無料相談 フォームで問い合わせ