# Disable Comments on Specific Post Types

> Turns comments and pings off for the post types you choose, such as pages or products, while keeping them on blog posts.

- Type: PHP
- Runs: Run everywhere
- Category: [Comments](https://wpide.com/library/category/comments/)
- Tags: comments, post-types, disable
- Author: WPIDE Team
- Installs: 0
- Updated: 2026-10-28
- Page: https://wpide.com/library/disable-comments-for-post-types/

## Code

```php
// Post types without comments.
$wpide_no_comment_types = array( 'page', 'attachment' );

add_action( 'init', function () use ( $wpide_no_comment_types ) {
    foreach ( $wpide_no_comment_types as $type ) {
        remove_post_type_support( $type, 'comments' );
        remove_post_type_support( $type, 'trackbacks' );
    }
}, 100 );

$wpide_close_for_types = function ( $open, $post_id ) use ( $wpide_no_comment_types ) {
    return in_array( get_post_type( $post_id ), $wpide_no_comment_types, true ) ? false : $open;
};

add_filter( 'comments_open', $wpide_close_for_types, 20, 2 );
add_filter( 'pings_open', $wpide_close_for_types, 20, 2 );
```

## Notes

Existing comments stay in the database; hide them too with a comments_array filter if needed.

## How to use it

Install the free WPIDE plugin (https://wordpress.org/plugins/wpide/), find "Disable Comments on Specific Post Types" in its snippet library and add it in one click; or create a new PHP snippet in WPIDE (or any code snippets plugin) and paste the code above. More snippets: https://wpide.com/library/
