skaut / wordpress-stubs
High quality stubs for WordPress functions and classes
Requires
- php: ^7.0 || ^8.0
Requires (Dev)
- dealerdirect/phpcodesniffer-composer-installer: ^1.0
- phan/phan: ^6.0
- phpstan/phpstan: ^2.1
- slevomat/coding-standard: ^8.14
- squizlabs/php_codesniffer: ^3.0
- wp-coding-standards/wpcs: ^3.0
Suggests
- phan/phan: A static analyzer for PHP
- phpstan/phpstan: PHPStan - PHP Static Analysis Tool
This package is auto-updated.
Last update: 2026-06-10 09:54:46 UTC
README
This repo contains stubs for WordPress functions and classes to be used with phan or phpstan. This allows for better type-checking of a codebase as the stubs all have type information.
Alternatives
php-stubs/wordpress-stubs
The php-stubs/wordpress-stubs project uses stubs that are exported directly from WordPress source code. That means that the stubs are more complete and updated quicker. On the other hand, a lot of functions and classes are documented poorly in WordPress and array types are almost never typed properly (i. e. just array<mixed>). This package has all the stubs created by hand, so they are much more precise.
Installation
$ composer require --dev skaut/wordpress-stubs
Add to your .phan/config.php:
return [ 'directory_list' => [ 'vendor/skaut/wordpress-stubs/stubs' ], 'exclude_analysis_directory_list' => [ 'vendor/skaut/wordpress-stubs/stubs' ] ];
Add to your phpstan.neon:
parameters: scanDirectories: - vendor/skaut/wordpress-stubs/stubs scanFiles: - vendor/skaut/wordpress-stubs/stubs/WordPress/functions.php dynamicConstantNames: - WP_DEBUG - ...
(you have to list dynamic constants yourself)
Completeness
The stubs are not complete. If you spot any missing functions or classes, please open an issue.