Documentation

ValidPostTypeSlugSniff extends AbstractFunctionParameterSniff

FinalYes

Validates post type names.

Checks the post type slug for invalid characters, long function names and reserved names.

Tags
link
https://developer.wordpress.org/reference/functions/register_post_type/
since
2.2.0

Table of Contents

Constants

POST_TYPE_MAX_LENGTH  : int = 20
Max length of a post type name is limited by the SQL field.
VALID_POST_TYPE_CHARACTERS  : string = '/^[a-z0-9_-]+$/'
Regex to validate the characters that can be used as the post type slug.

Properties

$exclude  : array<string|int, mixed>
Exclude groups.
$unittest_groups  : array<string|int, mixed>
Groups of function data to check against.
$excluded_groups  : array<string|int, mixed>
Cache for the excluded groups information.
$group_name  : string
The group name for this group of functions.
$groups  : array<string|int, mixed>
Cache for the group information.
$phpcsFile  : File
The current file being sniffed.
$regex_pattern  : string
Regex pattern with placeholder for the function names.
$reserved_names  : array<string, true>
Array of reserved post type names which can not be used by themes and plugins.
$target_functions  : array<string, true>
Array of functions that must be checked.
$tokens  : array<string|int, mixed>
The list of tokens in the current file being sniffed.
$valid_tokens  : array<int|string, int|string>
All valid tokens for in the first parameter of register_post_type().

Methods

check_for_matches()  : int|void
Verify if the current token is one of the targeted functions.
getGroups()  : array<string, array<string, array<string|int, string>>>
Groups of functions to restrict.
is_targetted_token()  : bool
Verify if the current token is a function call. Behaves like the parent method, except that it returns false if there is no opening parenthesis after the function name (likely a function import) or if it is a first class callable.
process()  : int|void
Set sniff properties and hand off to child class for processing of the token.
process_first_class_callable()  : int|void
Process the function if it is used as a first class callable.
process_matched_token()  : int|void
Process a matched token.
process_no_parameters()  : int|void
Process the function if no parameters were found.
process_parameters()  : void
Process the parameter of a matched function.
process_token()  : int|void
Processes this test, when one of its tokens is encountered.
register()  : array<string|int, mixed>
Returns an array of tokens this test wants to listen for.
prepare_name_for_regex()  : string
Prepare the function name for use in a regular expression.
setup_groups()  : bool
Set up the regular expressions for each group.

Constants

POST_TYPE_MAX_LENGTH

Max length of a post type name is limited by the SQL field.

public int POST_TYPE_MAX_LENGTH = 20
Tags
since
2.2.0

Properties

$exclude

Exclude groups.

public array<string|int, mixed> $exclude = array()

Example: 'switch_to_blog,user_meta'

Tags
since
0.3.0
1.0.0

This property now expects to be passed an array. Previously a comma-delimited string was expected.

$unittest_groups

Groups of function data to check against.

public static array<string|int, mixed> $unittest_groups = array()

Don't use this in extended classes, override getGroups() instead. This is only used for Unit tests.

Tags
since
0.10.0

$group_name

The group name for this group of functions.

protected string $group_name = 'restricted_parameters'

Intended to be overruled in the child class.

$phpcsFile

The current file being sniffed.

protected File $phpcsFile
Tags
since
0.4.0

$reserved_names

Array of reserved post type names which can not be used by themes and plugins.

protected array<string, true> $reserved_names = array( 'action' => true, // Not a WP post type, but prevents other problems. 'attachment' => true, 'author' => true, // Not a WP post type, but prevents other problems. 'custom_css' => true, 'customize_changeset' => true, 'nav_menu_item' => true, 'oembed_cache' => true, 'order' => true, // Not a WP post type, but prevents other problems. 'page' => true, 'post' => true, 'revision' => true, 'theme' => true, // Not a WP post type, but prevents other problems. 'user_request' => true, 'wp_block' => true, 'wp_font_face' => true, 'wp_font_family' => true, 'wp_global_styles' => true, 'wp_navigation' => true, 'wp_template' => true, 'wp_template_part' => true, )

Source:

Key is reserved post type name, value irrelevant.

Tags
since
2.2.0

$target_functions

Array of functions that must be checked.

protected array<string, true> $target_functions = array('register_post_type' => true)

Key is function name, value irrelevant.

Tags
since
2.2.0

$tokens

The list of tokens in the current file being sniffed.

protected array<string|int, mixed> $tokens
Tags
since
0.4.0

$valid_tokens

All valid tokens for in the first parameter of register_post_type().

private array<int|string, int|string> $valid_tokens = array()

Set in register().

Tags
since
2.2.0

Methods

check_for_matches()

Verify if the current token is one of the targeted functions.

public check_for_matches(int $stackPtr) : int|void
Parameters
$stackPtr : int

The position of the current token in the stack.

Tags
since
0.11.0

Split out from the process() method.

Return values
int|void —

Integer stack pointer to skip forward or void to continue normal file processing.

getGroups()

Groups of functions to restrict.

public getGroups() : array<string, array<string, array<string|int, string>>>
Return values
array<string, array<string, array<string|int, string>>>

is_targetted_token()

Verify if the current token is a function call. Behaves like the parent method, except that it returns false if there is no opening parenthesis after the function name (likely a function import) or if it is a first class callable.

public is_targetted_token(int $stackPtr) : bool
Parameters
$stackPtr : int

The position of the current token in the stack.

Return values
bool

process()

Set sniff properties and hand off to child class for processing of the token.

public process(File $phpcsFile, int $stackPtr) : int|void
Parameters
$phpcsFile : File

The file being scanned.

$stackPtr : int

The position of the current token in the stack passed in $tokens.

Tags
since
0.11.0
Return values
int|void —

Integer stack pointer to skip forward or void to continue normal file processing.

process_first_class_callable()

Process the function if it is used as a first class callable.

public process_first_class_callable(int $stackPtr, string $group_name, string $matched_content) : int|void

Defaults to doing nothing. Can be overloaded in child classes to implement specific checks on first class callable use of the function.

Parameters
$stackPtr : int

The position of the current token in the stack.

$group_name : string

The name of the group which was matched.

$matched_content : string

The token content (function name) which was matched in lowercase.

Return values
int|void —

Integer stack pointer to skip forward or void to continue normal file processing.

process_matched_token()

Process a matched token.

public process_matched_token(int $stackPtr, string $group_name, string $matched_content) : int|void
Parameters
$stackPtr : int

The position of the current token in the stack.

$group_name : string

The name of the group which was matched.

$matched_content : string

The token content (function name) which was matched in lowercase.

Return values
int|void —

Integer stack pointer to skip forward or void to continue normal file processing.

process_no_parameters()

Process the function if no parameters were found.

public process_no_parameters(int $stackPtr, string $group_name, string $matched_content) : int|void

Defaults to doing nothing. Can be overloaded in child classes to handle functions were parameters are expected, but none found.

Parameters
$stackPtr : int

The position of the current token in the stack.

$group_name : string

The name of the group which was matched.

$matched_content : string

The token content (function name) which was matched in lowercase.

Return values
int|void —

Integer stack pointer to skip forward or void to continue normal file processing.

process_parameters()

Process the parameter of a matched function.

public process_parameters(int $stackPtr, string $group_name, string $matched_content, array<string|int, mixed> $parameters) : void

Errors on invalid post type names when reserved keywords are used, the post type is too long, or contains invalid characters.

Parameters
$stackPtr : int

The position of the current token in the stack.

$group_name : string

The name of the group which was matched.

$matched_content : string

The token content (function name) which was matched in lowercase.

$parameters : array<string|int, mixed>

Array with information about the parameters.

Tags
since
2.2.0

process_token()

Processes this test, when one of its tokens is encountered.

public process_token(int $stackPtr) : int|void
Parameters
$stackPtr : int

The position of the current token in the stack.

Return values
int|void —

Integer stack pointer to skip forward or void to continue normal file processing.

register()

Returns an array of tokens this test wants to listen for.

public register() : array<string|int, mixed>
Tags
since
2.2.0
Return values
array<string|int, mixed>

prepare_name_for_regex()

Prepare the function name for use in a regular expression.

protected prepare_name_for_regex(string $function_name) : string

The getGroups() method allows for providing function names with a wildcard * to target a group of functions. This prepare routine takes that into account while still safely escaping the function name for use in a regular expression.

Parameters
$function_name : string

Function name.

Tags
since
0.10.0
Return values
string —

Regex escaped function name.

setup_groups()

Set up the regular expressions for each group.

protected setup_groups(string $key) : bool
Parameters
$key : string

The group array index key where the input for the regular expression can be found.

Tags
since
0.10.0
Return values
bool —

True if the groups were setup. False if not.

On this page

Search results