WordPressテーマのOnePress、call to undefined function add_action()エラーの解決方法

シェアする

先日WordPressのテーマ、OnePressというテーマをカスタマイズする機会がありました。

その時にcall to undefined function add_action()というエラーが表示されたので解決方法を説明します。

子テーマでやろうとしたこと

子テーマでやろうとしたことはヘッダーナビにボタンを実装することでした。調べてみると、テーマのincフォルダに「template-tags.php」があったので、その子テーマを作成して編集することにしました。

その時にcall to undefined function add_action()が表示されました。

子テーマを作成する際、functions.phpの上書きをされないようにfunction_exists()や優先度の問題はつきものですが、そもそもadd_action自体が使えないぽい。

僕がいつも使用していて、全くテーマに関係ないadd_actionを試してみたのですが、全く同じエラーが表示されました。

え、なんで?

読み込みをget_template_partに変更

もう一度テーマを調べてみます。すると「template-tags.php」はrequireでfunctions.phpに読み込まれていました。

それをget_template_partに変更しました。子テーマのfunctions.phpに下記を追加しました。

さいごに

function_exists()や優先度は正しいのにテーマによってできない場合は、includeやrequireを確認してget_template_partに変更も試してみましょう。