В настоящее время комментарии в Discourse и WordPress синхронизированы. Было бы отлично реализовать двустороннюю синхронизацию основного контента, чтобы сообщество Discourse могло редактировать (изменять и значительно дополнять) контент прямо из экземпляра Discourse. Таким образом, сообщество сможет участвовать в улучшении сайта на WordPress (что и является целью сообщества — участие в создании и улучшении контента), а не только штатные редакторы.
Статьи станут лучше, информация — более точной и актуальной, без привлечения дополнительного персонала. Для этого необходимо добавить третью настройку: синхронизация тем между экземплярами.
Хорошо, но в чём же польза наличия двух интерфейсов редактирования для одного и того же контента?
Хотя WordPress может работать с Markdown и иногда это делает, для большинства сайтов это не стандарт. Более того, если поведение системы не изменилось, Markdown при сохранении поста преобразуется в HTML. Также теряются любые специфические стили CSS. В результате хорошо оформленные посты в WordPress теряют часть визуальной точности при просмотре на сайте Discourse.
Если разрешить Discourse перезаписывать содержимое постов WordPress, это серьёзно ограничит многие функции оформления в WordPress. Кроме того, возникают проблемы с версионированием и одновременными изменениями — предположительно, побеждает последняя запись?
Если вы хотите, чтобы редакторы и участники сообщества вносили вклад в создание качественного контента, почему бы не редактировать его в одном и том же месте?
Потому что контроль того, кто что видит и что не может делать, в Discourse осуществляется гораздо эффективнее, тогда как на стороне WordPress могут быть и другие публикации.
Это может быть одной из причин. Я не занимаю чью-либо сторону, будь то хороший, плохой или нейтральный случай.
Привет, @volanar, я понимаю, чего вы пытаетесь достичь.
Это не станет частью плагина WP Discourse в обозримом будущем. Отчасти потому, что этот плагин сосредоточен на синхронизации комментариев WordPress, а не контента записей WordPress, и отчасти потому, что создание двусторонней синхронизации в плагине WP Discourse сопряжено с проблемами, которые сложно решить в рамках архитектуры этого плагина и его взаимодействия с Discourse. @Stephen уже упоминал некоторые из этих проблем. Есть и другие.
Тем не менее, возможно, вы сможете достичь своей цели, используя плагин WordPress ActivityPub и плагин Discourse ActivityPub. В теории их комбинация может реализовать то, что вы хотите, то есть двустороннюю синхронизацию контента (записей WordPress и записей Discourse).
Однако есть два важных предостережения. Функции двусторонней синхронизации плагина Discourse ActivityPub ещё не объединены в основную ветку плагина (соответствующий PR сейчас находится на рассмотрении), и я никогда не тестировал этот плагин в связке с плагином WordPress ActivityPub. Тем не менее, то, что вы предлагаете, потенциально возможно при объединении этих двух решений.
Действительно, описанный вами сценарий — именно то, для чего был разработан протокол ActivityPub. Почему это более реализуемо в этом контексте, чем в контексте WP Discourse? Причин много, и я не буду вдаваться в детали здесь, но достаточно сказать: если это ваша цель, то именно этот путь вам стоит рассмотреть.
Потому что WordPress поддерживает WPML, и контент переводится на несколько языков. WPML удобен для отслеживания изменений в контенте. Далее WP публикует контент на блог и в мобильном приложении. То есть WP может использоваться как headless CMS.
Основная тема будет создаваться в WP, но сообщество сможет вносить исправления и дополнения в контент. Это техническая информация, и эстетическая составляющая здесь не важна, поэтому по умолчанию в WP можно установить плагин Markdown для единого формата контента. В идеале лучше использовать Ghost, Strapi, Squidex или другую платформу, но это потребует затрат и подойдёт не всем. Решение должно быть универсальным для всех.
Я придумал хороший вариант. В конце темы укажите ссылку на редактирование на фронтенде в WordPress. Таким образом, пользователи смогут самостоятельно редактировать контент, а модератор сможет принимать или отклонять изменения.