Почему комментарии отключены по умолчанию для моих пользовательских типов записей?


Я использую пользовательский тип записи + таксономии в решении для подкастов для клиента. В настройках (настройки>> обсуждение) для комментариев установлено значение "разрешить комментарии". Когда я добавляю/редактирую сообщения на вкладке "сообщения", комментарии включены по умолчанию.

Однако, когда я добавляю/редактирую сообщения в соответствии с пользовательским типом записи (подкаст) - комментарии по умолчанию отключены.

Пользователь все еще может вручную включать комментарии для каждого сообщения, но это, очевидно, не идеально. Мысли?

ОБНОВЛЕНИЕ: Соответствующий код в functions.php

function create_my_post_types() {
    register_post_type( 'podcast',
        array(
            'labels' => array(
                'name' => __( 'Podcast' ),
                'singular_name' => __( 'Podcast' ),
                'new_item' => __( 'New Episode' ),
                'add_new_item' => __( 'Add New Episode' )
            ),
            'public' => true,
            'hierarchical' => true,
            'menu_icon' => get_stylesheet_directory_uri() . '/assets/podcast-icon.png', // 16px16
            'menu_position' => 9,
            'supports' => array( 'title', 'editor', 'comments', 'post-templates'),
            'register_meta_box_cb' => 'add_podcast_metaboxes' // This registers the metabox that we'll add later.
        )
    );
}
Author: cybmeta, 2012-01-10

4 answers

Хорошо - итак, я решил эту проблему. Вот в чем, по-видимому, заключается проблема.

Комментарии по умолчанию отключены для пользовательских типов сообщений. Это происходит , даже если они включены в общих настройках

Чтобы исправить это, все, что мне нужно было сделать, это следующее:

  1. В разделе НАСТРОЙКИ > ОБСУЖДЕНИЕ снимите флажок "Разрешить пользователям оставлять комментарии к новым статьям".
  2. Нажмите "Сохранить изменения"
  3. Теперь вернитесь и перепроверьте "Разрешить людям оставлять комментарии о новых статьи"
  4. Нажмите "Сохранить изменения"

Похоже, что для пользовательских типов записей вам нужно как бы запустить эту настройку. Для всех новых сообщений для созданных пользовательских типов сообщений по умолчанию будет включен флажок. Существующие должности сохранят свои прежние настройки. Я предполагаю, что то же самое относится и к разрешению обратных ссылок. Надеюсь, это кому-то поможет...

 14
Author: timshutes, 2012-01-10 22:20:35

Это состояние по умолчанию.. вам нужно изменить "Строку поддержки", в которой вы создаете свой пользовательский тип записи..

Что означает эта строка:

//или что-то похожее, что начинается с того же

'supports' => array('title','editor','author','excerpt','revisions'),

К этой строке:

'supports' => array('title','editor','author','excerpt','comments','revisions'),

Надеюсь, это поможет.
Твое здоровье, Сагив.

ДОБАВЛЕНА ФУНКЦИЯ (ВНУТРИ ФАЙЛА ФУНКЦИЙ):

function default_comments_on( $data ) {
    if( $data['post_type'] == 'your_custom_post_name' ) {
        $data['comment_status'] = 1;
    }

    return $data;
}
add_filter( 'wp_insert_post_data', 'default_comments_on' );
 12
Author: Sagive SEO, 2012-01-10 23:01:30

Ни одно из следующих предложений не сработало для меня. Функция Sagive SEO почти сработала для меня. Я проверил свою базу данных, чтобы обнаружить, что единственными значениями для comment_status являются открытые и закрытые. Эта функция вставила 1 в качестве значения. Я пересмотрел функцию, и теперь она, кажется, работает идеально. Я надеюсь, что это кому-то поможет.

function default_comments_on( $data ) {
    if( $data['post_type'] == 'your_custom_post_type_name' ) {
        $data['comment_status'] = 'open';
    }

    return $data;
}
add_filter( 'wp_insert_post_data', 'default_comments_on' );
 2
Author: JediTricks007, 2015-06-22 19:51:05

Просто случайный удар, но нужно ли добавлять "комментарии" к параметру массива supports в вызове register_post_type()?

 1
Author: Jason Rhodes, 2012-01-10 00:36:06