頑張らない!でも諦めない!必死にならずにええかげん

WordPressのfunctions.php編集には子テーマを利用

      2014/11/22

WordPress™のカスタマイズを行う際に、
テーマファイルのheader.phpやfunctions.phpを直接編集する場合もあるでしょう。
しかしそうしたファイルを編集する際には子テーマを作成し、
子テーマで編集内容を反映するほうが将来的なメンテナンスも楽になります。

ここでは子テーマを利用したfunctions.phpの編集手順についてご紹介します。

はじめに

functions.phpの編集については、いろいろな方がブログなどで紹介されています。
PHPを直接記述してさまざまなカスタマイズを行えるため、
ちょうどいいプラグインが見当たらないような場合には、functions.phpを編集したくなります。

しかし、テーマファイルのfunctions.phpを直接編集していると、
万が一にもテーマをうっかりアップデートしてしまったようなときに、
functions.phpに行ってきた編集内容も失われてしまいます。

失われたfunctions.phpが力作だったりした場合にはおそらく立ち直れないでしょう。

実際にはCodexを読まれたほうがわかりやすいかもしれませんが、ご参考まで。

子テーマの準備

functions.phpを子テーマから利用するには、
まず子テーマを利用している状態にする必要があります。

子テーマの導入方法と有効化については以下でご紹介しています。
WordPressテーマファイルの編集に子テーマ利用

functions.phpの設置

子テーマを準備して有効化すると、子テーマのディレクトリは以下のようになっていると思います。
これは子テーマとして最低限の設定を行った状態です。

01_子テーマフォルダの状態

子テーマフォルダの状態

このディレクトリの中にはstyle.cssというファイル以外にも、
親テーマが利用している各phpファイルを含めることができ、
含めたphpファイルにて親テーマの設定を上書きすることができます。

要は親テンプレートからphpファイルをコピーし、
子テーマディレクトリ上のファイルで編集を行うことで親テーマのアップデートなどで影響を受けず、
子テーマのphpファイルで親テーマの同名phpファイルをオーバーライドし有効にすることができます。

子テーマ – WordPress Codex 日本語版#テンプレートファイル (抜粋引用)

テンプレートファイル

子テーマのテンプレート は style.css と同じように親テーマの 同名ファイルをオーバーライドします 。単純に同名のファイル名を使用すれば親テーマのテンプレートをオーバーライドできます。(注意: index.phpをオーバーライドできるのはWordPress 3.0以上です)

ただし、functions.phpだけは、他のphpファイルとは動作が異なっています。
親テーマのphpファイルをオーバーライドされることはありません。

子テーマ – WordPress Codex 日本語版#functions.php の使用方法

functions.php の使用方法

style.css と違い、functions.php は同名ファイルでオーバーライドできません。その代わり、親の functions.php に追加して読み込まれます。正確にいうと、親テーマの functions.php の直前に読み込まれます。したがって、もし親テーマの functions.php で favicon_link() という関数があるとき、子テーマのfunctions.php で同名の関数があれば、子テーマの関数が使用されます。

(中略)

functions.phpファイルを作成し子テーマディレクトリに設置します。

02_functions.phpの設置

functions.phpの設置

実際に以下のようなソースを定義しています。

これによって、ファビコンの表示が以下のように変更され、
子テーマのfunctions.phpが正しく動作していることが確認できます。

03_ファビコン設定の反映

ファビコン設定の反映

プロモーション(btm)

Google or AdMax Promotion (it)

さいごに

ここでは簡単な例でしたが、functions.phpに対して記述ができる処理であれば、
こうして子テーマ側のfunctions.phpに記述を行うことでオリジナルを変更してしまうことなしに、
独自のカスタマイズを行っていくことができるようになります。


WordPressはWordPress Foundation の登録商標(第5049965号)です。
WordPressロゴ、アイコンその他のマーク等はWordPress Foundation の商標であり、
WordPress Foundation の著作物です。
WordPress.comはWordPress Foundation が管理運営を行うドメインならびにサービスの名称です。

*本ページ内に記載されされた各社ブランド、サービス名、商標、登録商標については、
各社ブランドのロゴや商標等に関する帰属についてをご確認ください


最後までお読みいただきありがとうございました。

アイキャッチ画像に利用させて頂いております、各社ブランドのロゴやシンボルに関しては、
各社ブランドのロゴや商標等に関する帰属についてをご確認頂けますようお願い致します。

AdMax Promotion

ブログ記事のご紹介
すべて展開 | すべて省略

Rakuten Promotion

ページ
すべて展開 | すべて省略

 - WordPress

Comment

  1. […] 参考:WordPressのfunctions.php編集には子テーマを利用 […]

  関連記事

eye_wordpress
04.Jetpack コメント-Jetpack by WordPress.com

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_tumblr
Tumblr™への共有をJetpack by WordPress.comで行う動作

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
07.メール投稿-Jetpack by WordPress.com

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
【再投稿】投稿の前後挿入にPost6WidgetArea_v0.6.2-wordpressプラグインを利用

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
投稿の前後挿入にPostPost-wordpressプラグインを利用が(配布されなくなっていた)

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
19_05.Flickr Videoプレーヤー表示には、JetpackのFlickr動画ショートコード埋め込み

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
WordPress4.0以降のサイトの言語変更による日本語化

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
wordpress標準のコメントシステムの入力・承認フロー

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
19_08.SoundCloudジャケット表示には、Jetpackのsoundcloudショートコード埋め込み

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_netowl
Netowl™の無料WordPressサーバWPblogの利用登録

Google or AdMax Promotion(it) 禁断の機能がau公式 …