Вы можете использовать Discourse в качестве системы комментариев для WordPress. Функции комментариев зависят от функций публикации, поэтому для работы комментариев необходимо настроить публикацию. Если вы уже настроили публикацию и готовы настроить комментарии, посмотрите это короткое видео или следуйте инструкциям ниже.
Следующий шаг
После настройки комментариев вы можете ознакомиться со следующими темами:
Инструкции
Настройка комментариев
Чтобы комментарии Discourse отображались на вашем сайте WordPress, необходимо включить настройку «Включить комментарии Discourse». При включении этой опции появятся два варианта. Опция «Отображать комментарии» загрузит шаблон комментариев для каждой записи WordPress, опубликованной в Discourse. Этот шаблон будет отображать комментарии Discourse под записями WordPress. Опция «Отображать ссылку на комментарии» загрузит шаблон комментариев, который показывает ссылку на соответствующую тему Discourse под опубликованными записями. В ссылке будет указано количество ответов на тему, но сами ответы на WordPress отображаться не будут.
Оба варианта работы комментариев основаны на загрузке шаблонов комментариев для записей WordPress. Это означает, что они будут работать только в том случае, если для записи включены комментарии. Если вы хотите включить комментарии для всех записей, но не хотите, чтобы исторические комментарии WordPress отображались для записей, которые не были опубликованы в Discourse, включите настройку «Удалить шаблон комментариев WordPress».
Настройки
Ниже приведены краткие описания того, что делают другие настройки комментариев. Если у вас всё ещё есть вопросы по какой-либо из настроек, ответьте в этой теме и попросите дополнительных разъяснений.
Загрузка комментариев через Ajax
Эта настройка используется для загрузки комментариев с клиента WordPress вместо загрузки с сервера. Это полезно, если кэширование страниц препятствует загрузке свежих комментариев на вашем сайте.
Загрузка CSS комментариев
Эта настройка загружает таблицу стилей, которая исправляет проблемы с onebox и цитатами Discourse при их отображении на WordPress.
Показывать существующие комментарии WP
Выберите эту настройку, чтобы также отображать существующие комментарии WordPress для записей, которые также были опубликованы в Discourse.
Заголовок для существующих комментариев
Если вы показываете существующие комментарии, эта настройка добавит заголовок над комментариями WordPress.
Настройки выборочного импорта
Существует ряд настроек, позволяющих выборочно импортировать комментарии. Они должны быть понятны без дополнительных объяснений. Значения по умолчанию для каждой из них — хорошая отправная точка, поэтому изменяйте их только при наличии веской причины.
- Максимальное количество видимых комментариев
- Минимальное количество ответов
- Минимальный балл постов
- Минимальный уровень доверия
- Обход порога уровня доверия
- Импортировать только лайкнутые модераторами
Пользовательский формат даты и времени
Эта настройка определяет формат даты, отображаемой для каждого комментария Discourse на вашем сайте WordPress. Начните со значения по умолчанию. Если вы захотите изменить формат даты, нажмите на ссылку в описании настройки для получения подробной информации о том, как это сделать.
Кэширование HTML комментариев
Эта настройка может быть использована для повышения производительности. Кэширование HTML комментариев сокращает количество запросов к Discourse. Связанная с ней настройка «Очистить кэшированный HTML комментариев» должна быть понятна без дополнительных объяснений.
Подробные логи комментариев
Включение этой опции будет регистрировать все успешные получения комментариев из Discourse, а также ошибки (по умолчанию).
Вебхук синхронизации данных комментариев
Включение вебхука синхронизации данных комментариев в панели настроек «Вебхуки» может значительно сократить количество API-запросов, отправляемых из WordPress в Discourse. Перед включением вебхука выполните следующие действия:
-
Перейдите по URL-адресу Discourse, указанному в описании настройки (
http://forum.example.com/admin/api/web_hooks). -
Нажмите кнопку «Новый вебхук» и заполните форму:
-
В поле «URL полезной нагрузки» введите URL, указанный в описании поля WP Discourse «Синхронизация данных комментариев». Он будет выглядеть примерно так, но с использованием URL-адреса вашего сайта WordPress:
https://wp-discourse.dev/wp-json/wp-discourse/v1/update-topic-content. -
Убедитесь, что поле «Тип содержимого» установлено в значение
application/json. -
В поле ввода «Секрет» введите строку текста длиной не менее 12 символов. Затем скопируйте этот же ключ в настройку WP Discourse «Ключ секрета вебхука».
-
В поле «Какие события должны запускать этот вебхук?» убедитесь, что выбрано «Событие поста».
-
Используйте поле «Категории для запуска», если вы публикуете посты из WordPress только в определённые категории. Таким образом, вашему сайту WordPress не нужно будет обрабатывать запросы вебхука для тем, у которых нет связанного поста в Discourse.
-
Оставьте включённой настройку «Проверять сертификат TLS URL-адреса полезной нагрузки».
Наконец, установите флажок «Активен» и нажмите «Создать». После сохранения вебхука нажмите кнопку «Перейти к событиям».
-
-
Вернитесь на WordPress, убедитесь, что вы ввели секрет вебхука из Discourse в поле «Ключ секрета вебхука», и включите настройку вебхука «Синхронизация данных комментариев». Затем сохраните параметры.
Вебхук Discourse должен теперь работать. Проверьте его, нажав кнопку Ping вебхука в Discourse (находится по адресу /admin/api/web_hooks/:webhook_id/events). Убедитесь, что при пинге вебхука возвращается статус-код 200.
Настройка периода синхронизации comments_number для архивных страниц WordPress
Чтобы получить правильное количество комментариев Discourse для записи, плагин должен периодически отправлять HTTP-запрос к Discourse для получения актуального количества комментариев. На отдельных страницах этот период установлен не чаще одного раза в 10 минут. Для архивных страниц период установлен не чаще одного раза в 24 часа. Это сделано для того, чтобы избежать множественных запросов к Discourse при каждом обращении к архивной странице.
Если вы всё же обнаружите, что плагин делает слишком много запросов к Discourse при отображении архивных страниц вашего сайта, вы можете настроить archive_page_sync_period, подключившись к фильтру 'discourse_archive_page_sync_period'. Для этого добавьте что-то подобное в файл functions.php вашей темы:
add_filter( 'discourse_archive_page_sync_period', 'my_namespace_archive_page_sync_period' );
function my_namespace_archive_page_sync_period( $sync_period ) {
// Это изменит период синхронизации для архивных постов на один раз в неделю.
return WEEK_IN_SECONDS;
}
Если вы обнаружите, что плагин делает недостаточно запросов к Discourse для получения актуальных количеств комментариев для архивных страниц, вы можете добавить что-то подобное в файл functions.php вашей темы. Это установит archive_page_sync_period на 10 минут.
Примечание: на загруженном сайте это может создать высокую нагрузку на ваш сервер.
add_filter( 'discourse_archive_page_sync_period', 'my_namespace_archive_page_sync_period' );
function my_namespace_archive_page_sync_period( $sync_period ) {
// Это изменит период синхронизации для архивных постов на один раз в неделю.
return 10 * MINUTE_IN_SECONDS;
}
Отображение комментариев без загрузки шаблона комментариев WordPress
Плагин WP Discourse использует шаблон комментариев WordPress для загрузки комментариев Discourse. Если ваша тема не загружает шаблон комментариев, вы можете отобразить комментарии с помощью статической функции-помощника get_discourse_comments. Эта функция требует, чтобы вы указали ID записи WordPress, для которой хотите отобразить комментарии. Вот простой пример её использования:
use WPDiscourse\Utilities\Utilities as DiscourseUtilities;
$discourse_comments = DiscourseUtilities::get_discourse_comments(859);
echo $discourse_comments;
Комментарии будут отображаться так же, как и при выборе опции «Включить комментарии Discourse/Отображать комментарии» (находится на вкладке «Настройки комментариев» плагина). При использовании этой функции значение этой настройки игнорируется, но все остальные настройки комментариев учитываются.
Устранение неполадок
Самая распространённая проблема с комментариями Discourse заключается в том, что они могут не появляться сразу после публикации поста в Discourse. Эта задержка намеренная, так как плагин пытается сократить количество запросов, которые ему нужно делать к Discourse. Выполнение запроса при каждой загрузке страницы замедлит работу вашего сайта. Если вы не видите, что комментарии появляются мгновенно, подождите 10 минут перед повторным обновлением страницы.
Проблемы с количеством комментариев при отображении как комментариев Discourse, так и WordPress
Плагин wp-discourse использует фильтр-хук WordPress get_comments_number, чтобы количество комментариев Discourse, созданных для записи, могло отображаться по всему вашему сайту. Это создаёт конфликт, когда для записи отображаются как комментарии Discourse, так и WordPress. Плагин способен разрешить этот конфликт в большинстве случаев. Одно место, где его нельзя разрешить, — это заголовок комментариев, который темы WordPress часто отображают в начале раздела комментариев. Это раздел, который начинается со слов вроде «2 мысли о…».
Самый простой способ решить эту проблему — добавить правило в файл CSS вашей темы.
.discourse-comments-area ~ .comments-area .comments-title {
display: none;
}





