Registers support of certain features for a post type.
Description
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, the ‘autosave’ feature dictates whether the post type will be autosaved, 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',
) );
Parameters
$post_type
stringrequired- The post type for which to add the feature.
$feature
string|arrayrequired- The feature being added, accepts an array of feature strings or a single string.
$args
mixedoptional- Optional extra arguments to pass along with certain features.
Source
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;
}
}
}
For an overview of all possible features (e.g. ‘title’, ‘editor’, etc.), see the documentation for
post_type_supports
.Unfortunately,
add_post_type_support('page', 'thumbnail');
won’t add featured images to pages. For that you need to [add theme support for post-thumbnails
add_theme_support( 'post-thumbnails', array( 'post', 'page' ) );
https://developer.wordpress.org/reference/functions/add_theme_support/#post-thumbnails
This example adds support for excerpts in pages (assuming it is *not* showing under “Screen Options”):
The example that allows you to add support for specific feature to a custom post type. It’s used to enable or disable certain features, Such as custom fields, excerpts, comments, thumbnails, revisions and more for particular post type.
To enable `add_post_type_support` for a specific page or post, we can narrow down with condition.
Example: To add support for excerpt in page (id : 123), use this:
Note: `$_GET[‘post’]` gives the current page id when we open page edit screen.