MENU

wp-envのローカル開発環境でCursorがWordPress関数をエラー扱いしないようにする

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

私は、このキャッシュクリアが必須でした!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次