Apply post formats to a specific post type only?

I have the following code in functions.php to give me post format support and a custom post type ‘photos’. But I would like the post formats to only apply to the ‘photos’ post type and not to the built-in ‘posts’ post type.

add_theme_support( 'post-formats', array( 'image', 'chat', 'video', 'gallery' ) );
//custom post type
add_action( 'init', 'create_post_type' );
function create_post_type() {
    register_post_type( 'photos',
        array(
            'labels' => array(
                'name' => __( 'Photos' ),
                'singular_name' => __( 'Photo' )
            ),
        'public' => true,
        'has_archive' => true,
        'rewrite' => array('slug' => 'photo'),
        'menu_position' => 5,
        'taxonomies' => array('genre'),
        'supports' => array('title', 'editor', 'thumbnail', 'post-formats'),
        )
    );
}

Many thanks for your time and help.

Related posts

Leave a Reply

2 comments

  1. try this:

    add_action('load-post.php','add_post_type_support_stuff');
    add_action('load-post-new.php','add_post_type_support_stuff');
    function add_post_type_support_stuff( $post ){
    
        $screen = get_current_screen();
        $post_type = $screen->post_type;
    
        if( $post_type == 'photos' ) {
            //add this if you did not add support for the post type when you called register_post_type()
            add_post_type_support( 'page', 'post-formats' );
            //add the post formats
            add_theme_support('post-formats',array( 'image', 'chat', 'video', 'gallery' ));
        }
    
    }