Reputation: 1310
I am using PHP Intelephense(version 1.3.7) which is the latest version and my VS Code is up to date There was no problem before but a few days ago, it keeps on highlighted all my wordpress function name I tried to downgrade my PHP Intelephense but the situation still exist.. Any help will be appreciate
Upvotes: 114
Views: 38395
Reputation: 384
1) Open VS Code.
2) Open the Command Palette:
Press "Ctrl + Shift + P". (Mac: Press Cmd + Shift + P.)
Type > "Preferences: Open User Settings (JSON)" and select it from the list.
3) Edit the settings.json File:
Add or update the following settings in your settings.json file to include "wordpress" in both php.stubs and intelephense.stubs.
{
"intelephense.stubs": [
"apache",
"bcmath",
"bz2",
"calendar",
"com_dotnet",
"Core",
"ctype",
"curl",
"date",
"dba",
"dom",
"enchant",
"exif",
"FFI",
"fileinfo",
"filter",
"fpm",
"ftp",
"gd",
"gettext",
"gmp",
"hash",
"iconv",
"imap",
"intl",
"json",
"ldap",
"libxml",
"mbstring",
"meta",
"mysqli",
"oci8",
"odbc",
"openssl",
"pcntl",
"pcre",
"PDO",
"pdo_ibm",
"pdo_mysql",
"pdo_pgsql",
"pdo_sqlite",
"pgsql",
"Phar",
"posix",
"pspell",
"random",
"readline",
"Reflection",
"session",
"shmop",
"SimpleXML",
"snmp",
"soap",
"sockets",
"sodium",
"SPL",
"sqlite3",
"standard",
"superglobals",
"sysvmsg",
"sysvsem",
"sysvshm",
"tidy",
"tokenizer",
"xml",
"xmlreader",
"xmlrpc",
"xmlwriter",
"xsl",
"Zend OPcache",
"zip",
"zlib",
"wordpress"
],
"php.stubs": [
"*",
"wordpress"
]
}
4) Save the Changes:
Save the settings.json file by pressing Ctrl + S on Windows/Linux or Cmd + S on Mac.
5) Restart VS Code:
To ensure the new settings take effect, close and reopen VS Code.
Upvotes: 2
Reputation: 3306
I found the perfect solution that actually includes all Wordpress's definitions, so the IntelliSense / Interpreter for PHP will recognize all Wordpress's functions, while developing a plugin or anything related to Wordpress.
wordpress
- Later on you'll need the absolute path to the wordpress
directory
git clone --depth 1 --single-branch [email protected]:WordPress/WordPress.git wordpress
.vscode/settings.json
in my projects; here's how you can :
{
"editor.formatOnSave": true,
"intelephense.environment.includePaths": ["/absolute/path/to/cloned/wordpress"]
}
Here's a demo of how it works - https://youtu.be/yLgd5OKRXxM
Opinion: I prefer cloning WordPress locally in case I need to debug something during my application development, I'm not sure the other alternatives have this capability.
P.S: Yes, I got that excited about the solution, so I recorded a video with cinematic music :)
Upvotes: 5
Reputation: 4903
I solved this as follows:
Open Your settings.json File: Ctrl + ,
Click on the {} icon in the top right corner to view the JSON settings
Locate the php.stubs Setting. If it's not available, add it.
Add "wordpress" to the Array
Your php.stubs setting should now look something like this:
"php.stubs": [
"wordpress",
"*"
]
Save Your Changes
Upvotes: 4
Reputation: 11
If you load only child theme folder in vs code than it give you highlight on wordpress function. Instead of this, load whole WordPress folder in vs code. It's works for me. Thanks.
Upvotes: 1
Reputation: 4849
you just need to add WordPress item to the Intelephense: Stubs
from the extension setting.
Upvotes: 1
Reputation: 2019
The quick fix for this is simply to add WordPress to the Intelephense: Stubs
list.
1: Press (Ctrl+Shift+X) to the extensions bar on the left and search for PHP Intelephense
.
2: Click the settings icon of the extension and choose Extension Settings.
3: Scroll down to the bottom to see the list of Stubs.
4: Click on Add Item and choose wordpress
from the list.
If the changes are not affected, try to close and reopen Vscode.
This will solve the issue with built-in WordPress Functions, However, it will not recognize any functions from installed plugins.
Upvotes: 170
Reputation: 666
Adam allalou and drwatsoncode are right and they work but just a reminder, to be sure that the changes are effected, don't forget to close and open your VsCode editor again.
Upvotes: -1
Reputation: 1479
Maybe I'm missing something, but I never have this problem, and I think the reason is just that I open my whole WordPress site directory in VS Code at once.
Are you opening only your theme directory?
If so it makes sense that these functions are missing since they aren't in the project.
Open the whole site and this should go away. You'll also get all your theme and plugin functions imported correctly.
Upvotes: 9
Reputation: 5233
You have to add "wordpress" to the intelephense.stubs
array setting in your VS Code settings file. This array should probably also have many other stubs listed as well. For example: ("wordpress" is at the bottom)
// VS Code settings.json
{
// ... other settings here ...
"intelephense.files.maxSize": 3000000,
"intelephense.stubs": [
"apache",
"bcmath",
"bz2",
"calendar",
"com_dotnet",
"Core",
"ctype",
"curl",
"date",
"dba",
"dom",
"enchant",
"exif",
"FFI",
"fileinfo",
"filter",
"fpm",
"ftp",
"gd",
"gettext",
"gmp",
"hash",
"iconv",
"imap",
"intl",
"json",
"ldap",
"libxml",
"mbstring",
"meta",
"mysqli",
"oci8",
"odbc",
"openssl",
"pcntl",
"pcre",
"PDO",
"pdo_ibm",
"pdo_mysql",
"pdo_pgsql",
"pdo_sqlite",
"pgsql",
"Phar",
"posix",
"pspell",
"readline",
"Reflection",
"session",
"shmop",
"SimpleXML",
"snmp",
"soap",
"sockets",
"sodium",
"SPL",
"sqlite3",
"standard",
"superglobals",
"sysvmsg",
"sysvsem",
"sysvshm",
"tidy",
"tokenizer",
"xml",
"xmlreader",
"xmlrpc",
"xmlwriter",
"xsl",
"Zend OPcache",
"zip",
"zlib",
"wordpress"
]
}
You can also take a look at these github issues:
Upvotes: 187