コード・実装

【VS code】WordPressでUndefined function ‘~’ エラーの対処法

WordPressでUndefined function ~ の未定義関数エラーがVisual Studio Codeに出てきた時の対処法をご紹介。

エラーの状況

Visual Studio CodeでWordPressで未定義関数が出てくる

新Macに新しくVisual Studio Codeを新規で入れて、WordPressをローカル上で動かすと下記のようなエラーが大量に出てきました。

WordPressでよく使われるPHP関数がすべて「関数が定義されていません」とエラー表示されていますね。

Visual Studio Code上ではエラーが出るのですが、WordPressはしっかりと動くのですが、結構鬱陶しいので、対処していこうと思います。

Undefined function 'get_header'. intelephense(1010) [XX、XX]
Undefined function 'have_posts'. intelephense(1010) [XX、XX]
Undefined function 'home_url'. intelephense(1010) [XX、XX]
Undefined function 'get_template_directory_uri'. intelephense(1010) [XX、XX]
Undefined function 'the_title'. intelephense(1010) [XX、XX]
Undefined function 'the_permalink'. intelephense(1010) [XX、XX]
Undefined function 'the_time'. intelephense(1010) [XX、XX]
Undefined function 'get_footer'. intelephense(1010) [XX、XX]
Undefined function 'language_attributes'. intelephense(1010) [XX、XX]
Undefined function 'bloginfo'. intelephense(1010) [XX、XX]
Undefined function 'wp_head'. intelephense(1010) [XX、XX]
Undefined function 'body_class'. intelephense(1010) [XX、XX]
Undefined function 'is_page'. intelephense(1010) [XX、XX]
Undefined function 'is_singular'. intelephense(1010) [XX、XX]
Undefined function 'is_post_type_archive'. intelephense(1010) [XX、XX]
Undefined function 'get_template_part'. intelephense(1010) [XX、XX]

エラーのコピーをすると下記のような表示

[{
	"resource": "/Users/xxx/project/xxx/app/public/wp-content/themes/xxx/front-page.php",
	"owner": "_generated_diagnostic_collection_name_#1",
	"code": "1010",
	"severity": 8,
	"message": "Undefined function 'get_field'.",
	"source": "intelephense",
	"startLineNumber": 81,
	"startColumn": 23,
	"endLineNumber": 81,
	"endColumn": 32
}]

 

WordPressでUndefined function ‘~’ . intelephense(1010) [XX、XX]エラーの対処法

今回の原因:拡張機能「PHP Intelephense」

「PHP Intelephense」は、PHPのコード補完や構文チェックをしてくれるVSCodeの拡張機能です。

とても便利な拡張機能なんですが、現在デフォルトはWordPressの関数を「未定義関数(Undefined function)」としてエラー扱いするようになってしまったようです。

関数未定義エラーの解決方法

  1. 拡張機能「PHP Intelephense」の設定を確認
  2. 「Intelephense: Stubs」にWordPress追加

 

①拡張機能「PHP Intelephense」の設定を確認

インストールされている拡張機能一覧の中から「PHP Intelephense」の歯車マークをクリック。

その後、「拡張機能の設定」をクリックし、「PHP Intelephense」の設定をしていきましょう。

②「Intelephense: Stubs」にWordPress追加

「PHP Intelephense」の設定の中で、「Intelephense: Stubs」という項目を探す。

下に「項目の追加」ボタンがあるので、そこから「WordPress」を探して「追加」する。

追加後、すぐにエラーが解消されます。

 

※上記だとまだACFのエラーなど出てしまう場合

上記だとAdvanced Custom Fieldの関数がまだ関数未定義のエラー表示になってしまいました。

もうこうなったら、「PHP Intelephense」の設定の中の

Intelephense > Diagnostics: Undefined Functions

Enable undefined function diagnostics

チェックを外します。

その後VS codeの再起動をすると設定が反映されます。

これでエラーが表示されなくなります。

(それか、上記だとそもそも未定義の関数をお知らせしてくれなくなるので、拡張機能を入れなくても良いという場合は、PHP Intelephense拡張機能をアンインストールしても良いかもしれませんが…)

以上です!

ありがとうございました!

ABOUT ME
WEBクリ開発者
当ブログでは主にWeb制作・HTML・ CSS・SCSS・JavaScript・jQuery・Vue.js・Wordpress・個人開発情報の情報を発信。 WEBデザイナー・コーダー・プログラマー向けのサイトです。 また、個人開発のサービスやアプリのお知らせもさせていただいています。