WordPressで子テーマから親テーマの関数をカスタマイズする方法

WordPressの既存のテーマを利用しつつカスタマイズしています。テーマをゼロから作っていくとメンテナンスが大変です。
WordPressやプラグイン、php、javascriptのバージョンアップのたびに自作テーマをアップデートしないといけないです。

ということで、個人利用するなら既存のテーマを親テーマとして、子テーマを追加してそこからカスタマイズするのが主流だと思います。親テーマを作った人がアップデートしたらそれを利用できるように「親テーマは触らない」が良いです。

親テーマの関数を子テーマから無効化させる方法

例えば、無効にしたい関数が親テーマのphpファイルで下記のようにad_actionされていたとする

add_action('wp_head','customize_css',3); 

子テーマのfunctions.phpとか他のphpファイルに記載する。
引数のうち、三番目の数字は省略されている場合がある、記載されている場合は必ずこれも入れる。

add_action('init','remove_parent_custom_css');
  function remove_parent_custom_css() { 
    remove_action( 'wp_head', 'customize_css',3);
  }

親テーマの関数をカスタマイズしたい場合

親テーマとは違う関数名で定義する。

add_action('init','remove_parent_custom_css');
  function remove_parent_custom_css() { 
    remove_action( 'wp_head', 'customize_css',3);
  }
add_action('wp_head','child_customize_css',3);
  function child_customize_css() { 
    //カスタマイズした内容を入れる(親テーマの関数の中身をコピペしてカスタマイズする)
  }

まとめ

  • WordPressのテーマをカスタマイズする場合は子テーマを追加する。
  • 親テーマのファイルは一切触らないのが吉。
  • 親テーマのphpファイルの関数を子テーマから無効化したりカスタマイズすることができる。