2

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.

2 Answers 2

3

Try remove_post_type_support:

remove_post_type_support( 'post', 'post-formats' );
3
  • Doesn't seem to work... the format box is still there is the Posts' "Add New Post" window.
    – Gab
    Commented Jan 22, 2013 at 18:53
  • 1
    Did you hook into init?
    – diggy
    Commented Jan 22, 2013 at 18:57
  • Sorry I didn't know I had to put it inside the function create_post_type. Thanks a lot!
    – Gab
    Commented Jan 23, 2013 at 2:20
3

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' ));
    }

}
1
  • +1 for $post_type = $screen->post_type;
    – mems
    Commented Apr 30, 2014 at 14:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.