onepix/wordpress-stubs

WordPress function and class declaration stubs for static analysis.

v6.7.2 2025-03-15 22:29 UTC

This package is auto-updated.

Last update: 2025-03-15 22:43:38 UTC


README

It provides stub declarations for WordPress core functions, classes, interfaces, globals, hooks. These stubs can help plugin and theme developers leverage static analysis tools like PHPStan.

The stubs are generated from @johnpbloch's package using onepix/wordpress-stubs-generator.

Requirements

  • PHP 8.1+

Installation

Require this package as a development dependency with Composer.

composer require --dev onepix/wordpress-stubs

Alternatively you may download wordpress-stubs.phpstub directly.

Usage with PHPStan

composer require --dev szepeviktor/phpstan-wordpress

The package szepeviktor/phpstan-wordpress depends on phpstan/phpstan and this one. Please do read that package's README and see the example directory over there.

Usage with Psalm

Update your Psalm config to include this section.

<stubs>
    <file name="vendor/onepix/wordpress-stubs/wordpress-stubs.phpstub" />
</stubs>
<hooks>
    <directory name="vendor/onepix/wordpress-stubs/hooks" recursive="true"/>
</hooks>

Furthermore ensure WordPress core is not included in <projectFiles>.

Usage in Intellisense

If your IDE has trouble parsing all of WordPress you may find the stubs useful for enabling code completion and related features. For example there are instructions for usage with VSCode's Intelephense extension.

Versioning

This package is versioned to match the WordPress version from which the stubs are generated.

Generating stubs for a different WordPress version

  1. Run modern PHP version
  2. Clone this repository and cd into it
  3. Update "johnpbloch/wordpress": "x.x.x" in source/composer.json with the desired version
  4. Run composer update
  5. And run ./generate.sh

The wordpress-stubs.phpstub file should now be updated.