安全にfunctions.phpをカスタマイズする方法

[WordPress] 安全にfunctions.phpをカスタマイズする方法

※ 当サイトは広告を含みます。

functions.phpを直接修正するのは不具合時の対処やテーマ更新時に大変ですよね。
それでも手間を減らす方法もあり、ここで紹介する方法と以下の記事の内容でそこそこ安全に改造できます。

拡張用のfunctions.phpを新規作成する

最初にカスタマイズ用のコードを記述するためのphpファイルを作成します。配置するディレクトリとファイル名は好みで大丈夫です。
とりあえず、ここではfunctions.phpと同じディレクトリにextend-functions.phpとして作成します。


extend-functions.php

functions.phpから拡張用のphpファイルを呼び出す

functions.phpの1番下に拡張用のphpファイルを呼び出すコードを追加します。


require_once ( dirname(__FILE__) . '/extend-functions.php' );
管理人

パスの記述方法は趣味。自分のテーマに合わせて変更してください。

メリット・デメリット

前提として今後の独自カスタマイズは全て拡張用のphpファイル(extend-functions.php)に記述します。
寧ろfunctions.phpには呼び出しコード以外は何も書きません。そうすることで不具合が起きた場合の対処が楽になります。
デメリットは特に無いと思います。ただし、先程のコードで記述する拡張用phpファイルのパスを間違えるとサイトが真っ白になります。

不具合が発生した場合の対処

仮に拡張用のphpファイルに追加したコードが原因でサイトに不具合が発生しても、functions.phpに追記した内容を無効化すると復活します。
具体的には行頭に//を付けてコメントアウトします。こうすると拡張用のphpファイルを読み込まなくなり、動作可能な元の状態に戻ります。


//require_once ( dirname(__FILE__) . '/extend-functions.php' );
管理人

サーバーの機能にWebから直接ファイルを編集できる機能があるとめっちゃ楽だよ。エックスサーバーとかオススメ。

りさ

このリンクから契約すると初回だけ値引きされるよ。
https://www.xserver.ne.jp/?referral_token=1532349863649fbf122937b

拡張CSS & 拡張スクリプト

styles.cssやjsファイルも極力元のファイルは変更しないほうが良いです。拡張用のphpファイルと同じ仕組みの導入ができます。
やるなら新規にcssとjsを作成して拡張用のphpファイルに以下を追記します。なお、パスの呼び出しはテーマによって変わると思います。


// 拡張CSS & 拡張スクリプト
add_action( 'wp_enqueue_scripts', function() {
  wp_enqueue_style( 'extend-styles', get_template_directory_uri() . '/extend-styles.css' );
  wp_enqueue_script( 'extend-scripts', get_template_directory_uri() . '/extend-scripts.js' );
} );

管理画面にも適用する場合は以下のコードも必要です。僕は読み込むファイルも管理画面用で別ファイルにしてます。


// 拡張CSS & 拡張スクリプト (管理画面用)
add_action( 'admin_enqueue_scripts', function() {
  wp_enqueue_style( 'extend-admin-styles', get_template_directory_uri() . '/extend-admin-styles.css' );
  wp_enqueue_script( 'extend-admin-scripts', get_template_directory_uri() . '/extend-admin-scripts.js' );
} );

あとがき

githubとかマージツールが使える人はテーマごと管理しておけば、利用テーマの更新時も簡単にアップデートできます。
と言うか、デザインならミスっても管理画面に入れるから、githubを使う場合はstyles.cssは直接編集でも良いかも。

この記事は参考になりましたか?

👆このブログを支援する

関連記事

コメント

この記事へのコメントはありません。