wp-envでセットアップしたWordPressのローカル開発環境では、WordPressコアファイルがないことがあります。そうなると、エディタがWordPress関数をどこにも定義されていないとエラー扱いしてしまいます。赤波線だらけになって、ほんとうのエラーを見逃しそうになってしまうので解決しておきたい!
というわけで、その解決方法です。
WordPress本体を置くのは避けたかったので、『php-stubs/wordpress-stubs』をComposerで導入し、CursorのIntelephense(PHP補完拡張機能)に認識させる方法で対応します。
WordPressスタブを導入する
プロジェクトルートで以下を実行します
$ composer require --dev php-stubs/wordpress-stubs
これでWordpressの型定義を追加しました
Intelephenseの設定
Cursorのsettings.jsonにWordPressスタブのパスと必要なstubsを追加します。
Cursorのsettings.jsonは3種類あります。デフォルト、ユーザー設定、ワークスペース設定です。私は、ワークスペース設定のsettings.jsonに追記しました。(必要なプロジェクトでのみこの作業をする見込み)
まず、コマンドパレット(Cmd + Shift + P)を開き、 Preferences: Open Workspace Settings (JSON) を選んで、 ワークスペース設定のsettings.jsonを開きます。

settings.jsonに次のコードを入力して保存します。
{
"intelephense.environment.includePaths": [
"vendor/php-stubs/wordpress-stubs"
],
"intelephense.stubs": [
"apache",
"bcmath",
"bz2",
"calendar",
"com_dotnet",
"core",
"curl",
"date",
"dba",
"dom",
"enchant",
"exif",
"fileinfo",
"filter",
"fpm",
"ftp",
"gd",
"gettext",
"gmp",
"hash",
"iconv",
"imap",
"interbase",
"intl",
"json",
"ldap",
"libxml",
"mbstring",
"meta",
"mysqli",
"oci8",
"odbc",
"openssl",
"pdo",
"pgsql",
"phar",
"posix",
"pspell",
"readline",
"recode",
"reflection",
"session",
"shmop",
"simplexml",
"snmp",
"soap",
"sockets",
"sodium",
"sqlite3",
"standard",
"superglobals",
"sysvmsg",
"sysvsem",
"sysvshm",
"tidy",
"tokenizer",
"xml",
"xmlreader",
"xmlrpc",
"xmlwriter",
"xsl",
"zend",
"zip",
"zlib",
"wordpress"
]
Cursorを再起動
あとは、Cursorを再起動すればエラー扱いされなくなり解決です。
もし解決しない場合は、Cursorのコマンドパレット(Cmd + Shift + P)で先に以下でキャッシュクリアを実行してから再起動してみてください。
Developer: Clear Editor History
私は、このキャッシュクリアが必須でした!