Когда вы создаете новый пост (пользовательский тип или обычный), WordPress вызывает, get_default_post_to_edit
который затем устанавливает значения по умолчанию для нового поста.
Эта функция предоставляет несколько хуков фильтров для изменения заголовка, содержимого и выдержки по умолчанию, но, к сожалению, ничего другого ... однако каждый фильтр передает весь $post
объект к обратному вызову, по сути это означает, что можно переопределить несколько свойств (или только одно, если нам нравится)
Это должно работать для вас, просто добавьте типы сообщений, к которым должен применяться код, в качестве случаев внутри переключателя .. (фильм и страница - примеры) ..
function my_default_content( $post_content, $post ) {
if( $post->post_type )
switch( $post->post_type ) {
case 'page':
case 'movie':
$post->comment_status = 'closed';
break;
}
return $post_content;
}
add_filter( 'default_content', 'my_default_content', 10, 2 );
Код был протестирован на WP 3.0.1 и имел желаемый эффект отключения комментариев для типов сообщений, в то же время оставляя другим наследовать статус по умолчанию из default_comment_status
опции.
Надеюсь, это поможет.... :)