TopGit tracks WordPress/WordPress-Coding-Standards on GitHub. The project has 2.8k stars. PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
Updating your WordPressCS install to a newer version
Using your WordPressCS install
Rulesets
Standards subsets
Using a custom ruleset
Customizing sniff behavior
Recommended additional rulesets
How to use
Command line
Using PHPCS and WordPressCS from within your IDE
Running your code through WordPressCS automatically using Continuous Integration tools
Fixing errors or ignoring them
Tools shipped with WordPressCS
Contributing
Funding
License
Introduction
This project is a collection of PHP_CodeSniffer rules (sniffs) to validate code developed for WordPress. It ensures code quality and adherence to coding conventions, especially the official WordPress Coding Standards.
This project needs funding. Find out how you can help.
Minimum Requirements
The WordPress Coding Standards package requires:
PHP 7.2 or higher with the following extensions enabled:
Filter
libxml
Tokenizer
XMLReader
Composer
For the best results, it is recommended to also ensure the following additional PHP extensions are enabled:
iconv
Multibyte String
Installation
As of WordPressCS 3.0.0, installation via Composer using the below instructions is the only supported type of installation.
Composer will automatically install the project dependencies and register the rulesets from WordPressCS and other external standards with PHP_CodeSniffer using the Composer PHPCS plugin.
If you are upgrading from an older WordPressCS version to version 3.0.0, please read the Upgrade guide for ruleset maintainers and end-users first!
Alternatively, you may want to install this standard globally:
composer global config allow-plugins.dealerdirect/phpcodesniffer-composer-installer true
composer global require --dev wp-coding-standards/wpcs:"^3.0"
Updating your WordPressCS install to a newer version
If you installed WordPressCS using either of the above commands, you can upgrade to a newer version as follows:
# Project local install
composer update wp-coding-standards/wpcs --with-dependencies
# Global install
composer global update wp-coding-standards/wpcs --with-dependencies
Using your WordPressCS install
Once you have installed WordPressCS using either of the above commands, use it as follows:
# Project local install
vendor/bin/phpcs -ps . --standard=WordPress
# Global install
%USER_DIRECTORY%/Composer/vendor/bin/phpcs -ps . --standard=WordPress
Pro-tip: For the convenience of using phpcs as a global command, use the Global install method and add the path to the %USER_DIRECTORY%/Composer/vendor/bin directory to the PATH environment variable for your operating system.
Rulesets
Standards subsets
The project encompasses a super-set of the sniffs that the WordPress community may need. If you use the WordPress standard you will get all the checks.
You can use the following as standard names when invoking phpcs to select sniffs, fitting your needs:
WordPress - complete set with all of the sniffs in the project
WordPress-Core - main ruleset for WordPress core coding standards
WordPress-Docs - additional ruleset for WordPress inline documentation standards
WordPress-Extra - extended ruleset with recommended best practices, not sufficiently covered in the WordPress core coding standards
includes WordPress-Core
Using a custom ruleset
If you need to further customize the selection of sniffs for your project - you can create a custom ruleset file.
When you name this file either .phpcs.xml, phpcs.xml, .phpcs.xml.dist or phpcs.xml.dist, PHP_CodeSniffer will automatically locate it as long as it is placed in the directory from which you run the CodeSniffer or in a directory above it. If you follow these naming conventions you don't have to supply a --standard CLI argument.
For more info, read about using a default configuration file. See also the provided WordPressCS phpcs.xml.dist.sample file and the fully annotated example ruleset in the PHP_CodeSniffer documentation.
Customizing sniff behavior
The WordPress Coding Standard contains a number of sniffs which are configurable. This means that you can turn parts of the sniff on or off, or change the behavior by setting a property for the sniff in your custom [.]phpcs.xml[.dist] file.
You can find a complete list of all the properties you can change for the WordPressCS sniffs in the wiki.
WordPressCS also uses sniffs from PHPCSExtra and from PHP_CodeSniffer itself.
The README for PHPCSExtra contains information on the properties which can be set for the sniff from PHPCSExtra.
Information on custom properties which can be set for sniffs from PHP_CodeSniffer can be found in the PHP_CodeSniffer wiki.
Recommended additional rulesets
PHPCompatibility
The PHPCompatibility ruleset and its subset PHPCompatibilityWP come highly recommended.
The PHPCompatibility sniffs are designed to analyze your code for cross-version PHP compatibility.
The PHPCompatibilityWP ruleset is based on PHPCompatibility, but specifically crafted to prevent false positives for projects which expect to run within the context of WordPress, i.e. core, plugins and themes.
Install either as a separate ruleset and run it separately against your code or add it to your custom ruleset, like so:
Whichever way you run it, do make sure you set the testVersion to run the sniffs against. The testVersion determines for which PHP versions you will receive compatibility information. The recommended setting for this at this moment is 7.2- to support the last three WordPress releases.
For more information about setting the testVersion, see:
PHPCompatibility: Sniffing your code for compatibility with specific PHP version(s)
PHPCompatibility: Using a custom ruleset
VariableAnalysis
For some additional checks around (undefined/unused) variables, the VariableAnalysis standard is a handy addition.
VIP Coding Standards
For those projects which deploy to the WordPress VIP platform, it is recommended to also use the official WordPress VIP coding standards ruleset.
How to use
Command line
Run the phpcs command line tool on a given file or directory, for example:
vendor/bin/phpcs --standard=WordPress wp-load.php
Will result in following output:
--------------------------------------------------------------------------------
FOUND 6 ERRORS AND 4 WARNINGS AFFECTING 5 LINES
--------------------------------------------------------------------------------
36 | WARNING | error_reporting() can lead to full path disclosure.
36 | WARNING | error_reporting() found. Changing configuration values at
| | runtime is strongly discouraged.
52 | WARNING | Silencing errors is strongly discouraged. Use proper error
| | checking instead. Found: @file_exists( dirname(...
52 | WARNING | Silencing errors is strongly discouraged. Use proper error
| | checking instead. Found: @file_exists( dirname(...
75 | ERROR | Overriding WordPress globals is prohibited. Found assignment
| | to $path
78 | ERROR | Detected usage of a possibly undefined superglobal array
| | index: $_SERVER['REQUEST_URI']. Use isset() or empty() to
| | check the index exists before using it
78 | ERROR | $_SERVER['REQUEST_URI'] not unslashed before sanitization. Use
| | wp_unslash() or similar
78 | ERROR | Detected usage of a non-sanitized input variable:
| | $_SERVER['REQUEST_URI']
104 | ERROR | All output should be run through an escaping function (see the
| | Security sections in the WordPress Developer Handbooks), found
| | '$die'.
104 | ERROR | All output should be run through an escaping function (see the
| | Security sections in the WordPress Developer Handbooks), found
| | '__'.
--------------------------------------------------------------------------------
Using PHPCS and WordPressCS from within your IDE
The wiki contains links to various in- and external tutorials about setting up WordPressCS to work in your IDE.
Running your code through WordPressCS automatically using Continuous Integration tools
Running in GitHub Actions
Running in Travis
Fixing errors or ignoring them
You can find information on how to deal with some of the more frequent issues in the wiki.
Tools shipped with WordPressCS
Since version 1.2.0, WordPressCS has a special sniff category Utils.
This sniff category contains some tools which, generally speaking, will only be needed to be run once over a codebase and for which the fixers can be considered risky, i.e. very careful review by a developer is needed before accepting the fixes made by these sniffs.
The sniffs in this category are disabled by default and can only be activated by adding some properties for each sniff via a custom ruleset.
At this moment, WordPressCS offer the following tools:
WordPress.Utils.I18nTextDomainFixer - This sniff can replace the text domain used in a code-base.
The sniff will fix the text domains in both I18n function calls as well as in a plugin/theme header.
Passing the following properties will activate the sniff:
old_text_domain: an array with one or more (old) text domain names which need to be replaced;
new_text_domain: the correct (new) text domain as a string.
Contributing
See CONTRIBUTING, including information about unit testing the standard.
Anyone contributing to the WordPress Coding Standards is expected to conduct themselves in accordance with the WordPress project's Code of Conduct.
Funding
If you want to sponsor the work on WordPressCS, you can do so by donating to the PHP_CodeSniffer Open Collective.
How active is development on WordPress/WordPress-Coding-Standards?
The most recent commit recorded on WordPress/WordPress-Coding-Standards was 9 days ago, based on the GitHub push timestamp. The repository has 524 forks — one of the better signals of community interest.
How many stars does WordPress/WordPress-Coding-Standards have?
WordPress/WordPress-Coding-Standards has 2.8k GitHub stars — refresh the page for the live number, or check github.com/WordPress/WordPress-Coding-Standards. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
Is WordPress/WordPress-Coding-Standards open source?
Yes — WordPress/WordPress-Coding-Standards ships under the MIT license, which makes its source code freely readable (and, depending on license terms, forkable and reusable). Source: github.com/WordPress/WordPress-Coding-Standards.
What is WordPress/WordPress-Coding-Standards?
WordPress/WordPress-Coding-Standards (WordPress/WordPress-Coding-Standards) is a PHP project on GitHub. From the project's own README: PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions
What language is WordPress/WordPress-Coding-Standards written in?
WordPress/WordPress-Coding-Standards is written primarily in PHP. GitHub's language field is based on the largest share of bytes in the default branch.
What license does WordPress/WordPress-Coding-Standards use?
WordPress/WordPress-Coding-Standards is released under the MIT license. Always verify the LICENSE file directly on GitHub for the authoritative terms — license strings can be edited out of sync with a project's actual stance.
Where do I read more about WordPress/WordPress-Coding-Standards?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/WordPress/WordPress-Coding-Standards is the definitive source.
Read full README in the tab above.
Still deciding about WordPress-Coding-Standards?
One click hands the question to an AI along with this page — see what it says about WordPress-Coding-Standards.