mildfuzz
  • 0
Мастер

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

  • 0

Я хочу отключить комментарии по умолчанию со страницами и пользовательскими типами сообщений.

Первоначально я просто использовал условные операторы в функции отображения комментариев, чтобы избежать отображения блока на этих страницах, но мне нужно, чтобы пользователь мог снова включить комментарии по мере необходимости.

Share
  1. Просто дружеское напоминание, что я добавил ответ на этот вопрос, который, я считаю, имеет желаемый эффект.

    • 0
  2. Насколько я понимаю, вы хотите, чтобы страницы и некоторые пользовательские типы сообщений по умолчанию отключали комментарии, в то время как сообщения по-прежнему будут использовать параметр по умолчанию (т.е. комментирование включено). Если это так, следующая функция сделает это.

    function default_comments_off( $data ) {
        if( $data['post_type'] == 'page' && $data['post_status'] == 'auto-draft' ) {
            $data['comment_status'] = 0;
        }
    
        return $data;
    }
    add_filter( 'wp_insert_post_data', 'default_comments_off' );
    
    • 0
  3. Когда вы создаете новый пост (пользовательский или обычный), 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 параметра.

    Надеюсь, это поможет…. 🙂

    • 0
  4. Я написал плагин для отключения комментариев на страницах по умолчанию. http://wordpress.org/extend/plugins/page-comments-off-please/

    Возможно, это поможет?

    • 0
  5. Согласно этому потоку, то, что вы запрашиваете, невозможно без использования специального плагина или функции для его выполнения.

    • 0
  6. Я бы порекомендовал по-прежнему использовать ваши условные операторы в отображении комментариев, но использовать параметры для сохранения ваших условных настроек. Затем вы можете добавить страницу в меню «Настройки», которая позволяет администраторам включать или отключать комментарии по мере необходимости.


    Обновлять

    Мне пришло в голову, что вы хотите установить значение по умолчанию для комментирования на «выключено» в качестве глобальной настройки, а не устанавливать его на «выключено» каждый раз, когда вы создаете страницу. Это возможно.

    Перейдите в «Настройки» >> «Обсуждение» в разделе администратора WordPress. В первом разделе («Настройки статьи по умолчанию» вы увидите параметр «Разрешить людям оставлять комментарии к новым статьям»… снимите этот флажок.

    Теперь по умолчанию комментарии будут отключены для всех новых сообщений, страниц и пользовательских типов сообщений. Вы по-прежнему можете включить комментарии в каждом конкретном случае, установив соответствующий флажок в мета-поле «Обсуждение» на экране редактирования отдельного поста/страницы.

    • 0
  7. Если вы просто добавите этот код в functions.php

    <?php
    add_post_type_support( 'your_custom_post_type', array( 'comments' ) );
    ?>
    

    Перейдите к сообщению и в параметрах экрана отметьте «Обсуждение» и «Комментарии», вы можете включить / отключить комментарии для каждого пользовательского типа сообщения.

    • 0

Оставить ответ

You must login to add an answer.