テーマのユーザー定義関数には必ず重複チェックを入れよう

公開日:2022(令和4)年8月16日/最終更新日:

WordPress Customize Ideas | Personal WP Customization Notes (PWCN)

【景品表示法に基づく表記】ページ内のコンテンツには、商品プロモーションが含まれています



親切なテーマでは必ず入っている、テーマ独自(ユーザー定義)関数に対する重複チェックコード。

チェックといっても「同じ名前の関数がなかったら..」という意味を成す以下のコードのことを言います。

if ( !function_exists( 'ユーザー定義関数名' ) ){
function ユーザー定義関数名(){
関数の内容
}
}

ちょうどいつものユーザー定義関数を前後で挟んだ形で記述します。

親テーマのfunctions.phpなどへ記述するユーザー定義関数に対してこれを入れておくことで、以下のような効果があります。

  • 親テーマを上書き更新した際、子テーマにたまたま同じ名前のユーザー定義関数がある場合に「重大なエラーが発生しました」とサイトがストップしてしまうトラブルを防ぐことができる
  • 子テーマ側で親テーマのユーザー定義関数を重複チェックコードを外してコピーして加工することで、完全に処理を上書きすることができる(フィルターフックよりも強力)

特に誰かに使ってもらうために配布しているテーマでは、できる限りこの処理を入れておいた方が、使われる方に親切だと思います(【HABONE】テーマではほとんどの関数にこの処理入れてます)。

ただし、この処理は万能ではなく、裏を返せば、子テーマに親テーマと同名のユーザー定義関数があって、まったく処理の違うものが記述されている場合には、子テーマ側のコードが生きて、親テーマ側のコードが死んでしまう(処理されなくなる)可能性がありますから注意が必要ではあります。

とはいえ、たまたま子テーマに親テーマと同名で別の処理をするユーザー定義関数が加わる可能性は、重複してトラブルになる確率よりもよほど低いので、やはり判定関数(重複チェック関数)は入れておいた方がよいと個人的には思います。



Lolipop ServerMoshimo Ad x-serverMoshimo Ad

WordPress Customize Ideas | Personal WP Customization Notes (PWCN)
特定のショートコードが本文内にあるかどうかによって処理を分岐する方法