# Change Log for the WPThemeReview PHP_CodeSniffer standard All notable changes to this project will be documented in this file. This projects adheres to [Semantic Versioning](https://semver.org/) and [Keep a CHANGELOG](https://keepachangelog.com/). ## [Unreleased] _No documentation available about unreleased changes as of yet._ ## [0.2.1] - 2019-11-17 ### Changed - Added new `$in_list` parameter to the `PrefixAllGlobalsSniff::process_variable_assignment()` method, so that the method is compatible with the upstream WPCS method (changed in WPCS 2.2.0). - Updated the minimum version requirement for the WordPress Coding Standards dependency to version 2.2.0. - Replaced the deprecated `WordPress.WP.TimezoneChange` with `WordPress.DateTime.RestrictedFunctions.timezone_change_date_default_timezone_set` - Enforce the array short syntax when writing sniffs. - Travis: Minor build script tweaks. ## [0.2.0] - 2019-07-17 ### Added - New `WPThemeReview.Templates.ReservedFileNamePrefix` sniff: checks if the template file is using a prefix which would cause WP to interpret it as a specialized template, meant to apply to only one page on the site. - New `WPThemeReview.Privacy.ShortenedURLs` sniff: detects the usage of shortened URLs. [Handbook rule](https://make.wordpress.org/themes/handbook/review/required/#privacy). - New `WPThemeReview.CoreFunctionality.PostsPerPage` sniff: adds a warning when a high pagination limit is detected, or if `-1` is used in `posts_per_page` setting while querying posts, due to detrimental effects it has on the query speed. - New `WPThemeReview.CoreFunctionality.PrefixAllGlobals` sniff, which extends the `WordPress.NamingConventions.PrefixAllGlobals`. The new sniff overloads the prefix check for variables only and will bow out if the file being scanned has a typical theme template file name. For all other files, it will fall through to the WPCS native sniff. Notes: * The new sniff adds a public `$allowed_folders` property to whitelist files in specific folders of a theme as template files. The `ruleset.xml` file sets this property to a limited set of folders whitelisted by default. * Similar to the WPCS `FileNameSniff`, this sniff does not currently allow for mimetype sublevel only theme template file names, such as `plain.php`. - Added two new groups to the restricted functions group: `editor-blocks` and `cron-functionality` in the `WPThemeReview.PluginTerritory.ForbiddenFunctions` sniff, which will check against core editor blocks being registered in the themes, and against the usage of cron functions in the theme respectively. - The `WordPress.PHP.IniSet` rule was added to the ruleset to check against themes setting ini configuration during runtime. - The `WordPress.WP.DeprecatedParameterValues` rule was added to the ruleset about usage of deprecated parameter values in WP functions. The sniff will suggest an alternative based on the parameter passed. ### Changed - Added XSD schema tags and validated the ruleset against schema (PHPCS 3.2+/3.3.2+). - Updated the minimum version requirement for the [WordPress Coding Standards](https://github.com/WordPress/WordPress-Coding-Standards/blob/develop/CHANGELOG.md) dependency to version 2.1.0. - Updated the suggested dealerdirect/phpcodesniffer-composer-installer version. - Updated the `WPThemeReview` codebase, where relevant, for compatibility with WPCS 2.0+. - Ruleset tweaks: limit PHPCompatibility to PHP files - Composer tweaks: improve readability of script section - Travis: Run the code style related and ruleset checks in separate [stages](https://docs.travis-ci.com/user/build-stages/). - Travis: Unit tests are now also run against PHP 7.4 (dev) - Travis: Test against high/low WPCS versions due to sniffs that are extending the WPCS native sniffs. - Travis: Minor tweaks to the Travis script. ### Removed - Remove `encoding` from the ruleset. The default `encoding` as of PHPCS 3.0.0 is `utf-8`, so we don't actually need to set this. ### Fixed - Removal of HTML from error message about adding menu pages in `WPThemeReview.PluginTerritory.NoAddAdminPages` sniff. - Minor grammar changes in the ruleset. ## [0.1.0] - 2018-10-31 ### Added #### Native sniffs - `WPThemeReview.CoreFunctionality.FileInclude`: checks if a theme uses `include(_once)` or `require(_once)` when `get_template_part()` should be used. [Handbook rule](https://make.wordpress.org/themes/handbook/review/required/#core-functionality-and-features). - `WPThemeReview.CoreFunctionality.NoDeregisterCoreScript`: checks if a theme deregisters core scripts (javascript). [Handbook rule](https://make.wordpress.org/themes/handbook/review/required/#stylesheets-and-scripts). - `WPThemeReview.CoreFunctionality.NoFavicon`: checks if a theme is hard coding favicons instead of using core implementation. [Handbook rule](https://make.wordpress.org/themes/handbook/review/required/#core-functionality-and-features). - `WPThemeReview.CoreFunctionality.NoTitleTag`: checks if a theme is using a `