WordPress at Your Fingertips

add_post_type_support() WP 1.0

Register support of certain features for a post type.

All core features are directly associated with a functional area of the edit screen, such as the editor or a meta box. Features include: 'title', 'editor', 'comments', 'revisions', 'trackbacks', 'author', 'excerpt', 'page-attributes', 'thumbnail', 'custom-fields', and 'post-formats'.

Additionally, the 'revisions' feature dictates whether the post type will store revisions, and the 'comments' feature dictates whether the comments count will show on the edit screen.

A third, optional parameter can also be passed along with a feature to provide additional information about supporting that feature.

Example usage:

add_post_type_support( 'my_post_type', 'comments' );
add_post_type_support( 'my_post_type', array(
	'author', 'excerpt',
) );
add_post_type_support( 'my_post_type', 'my_feature', array(
	'field' => 'value',
) );
1 time — 0.000021 sec (very fast) | 50000 times — 0.05 sec (speed of light)

No Hooks.


null. Nothing.


add_post_type_support( $post_type, $feature, ...$args );
$post_type(string) (required)
The post type for which to add the feature.
$feature(string|array) (required)
The feature being added, accepts an array of feature strings or a single string.
...$args(mixed) (required)
Optional extra arguments to pass along with certain features.


  • Global. Array. $_wp_post_type_features


Since 3.0.0 Introduced.
Since 5.3.0 Formalized the existing and already documented ...$args parameter by adding it to the function signature.

Code of add_post_type_support() WP 5.8.1

function add_post_type_support( $post_type, $feature, ...$args ) {
	global $_wp_post_type_features;

	$features = (array) $feature;
	foreach ( $features as $feature ) {
		if ( $args ) {
			$_wp_post_type_features[ $post_type ][ $feature ] = $args;
		} else {
			$_wp_post_type_features[ $post_type ][ $feature ] = true;

Custom post type (post_type)

Custom Types

No comments
    Log In