Базовый доступ к форуму/интеграция с сайтом на WordPress

У меня есть сайт на WordPress с функцией членства, где для управления доступом используется Memberpress.
Мы создали форум Discourse, установили плагин wp-discourse и связали их между собой.

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

Буду признательна за любые рекомендации по этому вопросу. Я заметила в различных настройках плагина упоминания о том, что посты могут быть встроены в сайт WordPress, но не нашла хорошего объяснения того, как именно это будет выглядеть.

Спасибо!
Эвелин

Вы видели эту тему:

Да
Я ознакомился с соответствующими разделами. Однако я так и не нашел информации о том, как подключить форум к веб-сайту. Я полагаю, достаточно просто добавить ссылку в меню.
Я попытался настроить так, чтобы WordPress-сайт служил провайдером единого входа (SSO) для форума, но мне нужно провести дополнительные тесты, поскольку при переходе на форум под учетной записью пользователя, которая уже существует на форуме, система все равно требует войти в форум.
Было бы полезно увидеть пример веб-сайта, связанного с форумом Discourse.
Спасибо!
Эвелин

Наш основной блог — один из примеров:

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

Если вы используете плагин для публикации постов из WordPress в Discourse, вы можете добавлять ссылку на соответствующую тему Discourse к каждому посту WordPress. Для этого выберите «Включить комментарии Discourse» на вкладке «Настройки комментариев» плагина. При выборе этой опции вам будет предложено либо отображать комментарии Discourse под постом, либо просто показывать ссылку на комментарии.

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

Вы можете добавить ссылку на ваш форум в меню сайта WordPress. Когда SSO включено, вы можете настроить ссылку так, чтобы при её нажатии пользователи проходили процесс входа через SSO. Подробнее о том, как структурировать такую ссылку, см. Create a DiscourseConnect login link. Чтобы добавить ссылку такого вида в WordPress, необходимо добавить в меню «Пользовательскую ссылку»:

Пример на скриншоте позволит пользователям войти в Discourse и перенаправит их на главную страницу форума при клике на ссылку «форум». Чтобы создать ссылку, перенаправляющую пользователей на конкретную страницу форума, добавьте к URL параметр запроса return_path. Например: http://localhost:3000/session/sso?return_path=http://localhost:3000/c/fun.

Привет, Саймон,

Спасибо! Это полезно.

Есть ли документация, объясняющая это?

http://localhost:3000/session/sso

Если я захочу использовать свой реальный URL (с поддоменом) для форума вместо localhost, это тоже сработает?

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

Значит, в этом случае все настройки для комментариев и публикаций и т. д. не будут применяться? Мы просто хотим защитить доступ к форуму с помощью нашего плагина для управления членством. Синхронизация комментариев и публикаций не потребуется.

Эвелин

Ой, извините — я просто перешёл по ссылке, которую вы поделили. Я слишком быстро читал :slight_smile:
Эвелин

Приведённый мной пример был не таким ясным, как следовало бы. Я исправлю его на этой неделе. Домен localhost:3000 — это домен моего локального сайта для разработки. Вам следует заменить этот домен на реальный домен вашего форума. Например: https://forum.example.com/session/sso

Если это так, то вам не нужно настраивать никакие параметры «Комментирование» или «Публикация».

Когда SSO включён, все пользователи вашего сайта WordPress смогут войти в ваш форум Discourse. Если у вас есть пользователи WordPress, которым не следует разрешать создавать учётные записи в Discourse, вам нужно будет добавить некоторый код в плагин или тему вашего сайта. В теме подробно описано, как это сделать: How to prevent some WP users from being able to login to Discourse.

Привет, Саймон,

Я настроил эту ссылку.

https://forum.richarddolanmembers.com/session/sso?return_path=https://forum.richarddolanmembers.com/

Мне нужно, чтобы она вела на главную страницу. Позже я, возможно, выберу конкретную страницу Discourse.

Я убедился, что оставил галочку включённой, чтобы разрешить прямой вход.
В настоящее время при входе с сайта WordPress или с самого форума меня перенаправляет на сайт WordPress.

Помогите, пожалуйста :slight_smile:
Эвелин

Привет,
Я попытался отключить предпросмотр, чтобы вы могли увидеть ссылку.
Я пытаюсь настроить это, чтобы вы могли её увидеть.

*2ttps://forum.richarddolanmembers.com/session/sso?return_path=https://forum.richarddolanmembers.com/

Ивлин

Привет, Саймон,

Мы заметили, что пользователи с правами администратора в Discourse не видят эти права при входе через SSO. Один из моих коллег может войти через процесс SSO, но не видит своих административных привилегий. Я вообще не могу войти — пока разбираюсь, почему.

Есть ли способ разрешить администраторам входить напрямую в Discourse, минуя SSO, чтобы они могли управлять сайтом? Или обеспечить, чтобы при входе через SSO на сайте они получали все свои полные права в Discourse?

Спасибо!
Эвелин

Да, если вы заблокировали себя при настройке SSO, перейдите по адресу http://forum.example.com/u/admin-login. (Замените forum.example.com на домен вашего форума.) Введите свой адрес электронной почты в форму на странице и перейдите по ссылке в письме, которое вам будет отправлено.

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

Ознакомьтесь со статьей Debug and fixing common DiscourseConnect issues, чтобы узнать, поможет ли она вам решить проблемы с SSO. Вероятно, ваши проблемы связаны с тем, что описано в разделе «Решение проблем входа через SSO с флагом require_activation» этой темы. Я не думаю, что ваш сайт использует стандартную систему регистрации WordPress, поэтому новые аккаунты, созданные после установки плагина WP Discourse, будут иметь флаг require_activation, установленный в true в полезной нагрузке SSO.