How to add “supports” parameter for a Custom Post Type?

Is there a way to add support for a custom feature for a custom post type, after it has been created?

I know how to create a custom post type using register_post_type(), and how to use the supports parameter to specify what the CPT should support;

Read More
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt' ,'headway-seo') 

But for the situations when the CPT is being registered by a plugin or theme, is there a way to ‘inject’ support elements (manipulate the support array) of the CPT after it has been registered, using a WP hook/filter?

Related posts

Leave a Reply

2 comments

  1. Yes, there’s a function called add_post_type_support

    Hook into init — late, after the post types have been created — and add support.

    Adding support for excerpts to pages for instance:

    <?php
    add_action('init', 'wpse70000_add_excerpt', 100);
    function wpse70000_add_excerpt()
    {
        add_post_type_support('page', 'excerpt');
    }
    
  2. An alternative approach is to hook into register_post_type_args and update the supports array.

    This is particularly useful if you have third-party plugins that hook into the CPT arguments to display content.

    function wpse70000_add_author_metabox_to_cpt_book( $args, $post_type ) {
        if ($post_type != 'POST_TYPE_NAME') // set post type
            return $args;
        $args['supports'] = array( 'author' ); // set the 'supports' array
        return $args;
    }
    
    add_filter( 'register_post_type_args', 'wpse70000_add_author_metabox_to_cpt_book', 10, 2 );