functions.phpを直接修正するのは不具合時の対処やテーマ更新時に大変ですよね。
それでも手間を減らす方法もあり、ここで紹介する方法と以下の記事の内容でそこそこ安全に改造できます。
functions.phpはWordPressテーマの最重要ファイルの1つで、誤った記述をするとサイトが死にます。それもあって殆どのサイトで気軽に触るなとか、修正するなとか書かれてます。 でもでも、現実問題として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は直接編集でもいいかも。
この記事は参考になりましたか?
コメント