2018.08.07 

【WordPress】functions.phpを子テーマでオーバーライド(上書き)する

Web制作


通常、子テーマでカスタマイズを行なっていると、親テーマへ上書きされる形になりますが、functions.phpだけは例外となります。
今回は恐らく多いケースであろう定義済みのメディアサイズの上書きを行なっていきます。

もくじ
  1. functions.phpが上書き出来ない理由
  2. 上書きの方法
  3. 「Regenerate Thumbnails」プラグインでサムネイル画像を再生成

functions.phpが上書き出来ない理由

  • CSSのセレクタやJavaScriptと違い、PHPでは関数の重複が出来ずエラーになってしまいます。
  • 読み込み順がfunctions.phpだけは、子テーマ→親テーマとなってしまいます。

ならば、親テーマを編集… というのは、どうしても避けたい所。

上書きの方法

親テーマに !function_exists がある場合

先ほど、関数の重複はできない と書いたばかりですが、例外があります。
親テーマ内で !function_exists が使用されていると、子テーマ内でそのまま上書きが可能です。
こういった関数はプラグアブル関数と呼びます。

親テーマに !function_exists がない場合

この場合は、単純に読み込み順序を変更してあげます。
仮に親テーマにこのように画像サイズが定義されているとします。

この custom-mid-size のサイズを変更してみます。
例として width : 700px height : 400px → width : 600px height : 340px としてみます。

add_actionの$priority(優先順序)の初期値が10のため、11としました。

【add_actionの詳細はこちら】
関数リファレンス/add action – WordPress Codex 日本語版

「Regenerate Thumbnails」プラグインでサムネイル画像を再生成

定義しただけでは画像はリサイズされないため「Regenerate Thumbnails」プラグインでアップロード済みの画像をリサイズしましょう。
ちなみに、ツール→Regenerate Thumbnails→Thumbnail Sizes では現在定義されている画像サイズの一覧を確認することができます。

Regenerate Thumbnails


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

  1. この記事へのトラックバックはありません。