Отключить публикацию статей WordPress в Discourse при их обновлении

Привет! Плагин в целом работает отлично, спасибо. Однако есть одна проблема: у меня есть старые статьи в WordPress, которые я намеренно не публикую на Discourse. Но при любом редактировании таких старых статей (например, исправлении опечатки) на Discourse создается новый пост, как будто статья только что появилась. Это уведомляет наших пользователей о старом контенте, который им не нужен.

Есть ли способ отключить такое поведение? Спасибо.

Привет, Сэм,

Плагиат предоставляет вам различные варианты решения, когда контент в WordPress публикуется на Discourse, что также касается публикации старых постов. Сначала ознакомьтесь с настройками «Опубликование» в WP Discourse, которые задают параметры публикации по умолчанию. Затем также проверьте боковую панель WP Discourse в самом посте при его создании или редактировании.

Для получения дополнительной информации по обоим вопросам см.

Привет, вставляюсь в разговор, потому что сталкиваюсь с тем же поведением, что и @samtuke, и не могу найти обходного пути.

Если редактор исправляет что-то, например опечатку, в старой статье WordPress, которая ранее не публиковалась на Discourse, она автоматически публикуется как новая тема. Я хотел бы предотвратить это и публиковать только новые посты.

Полагаю, я мог бы добавить хак-хуком для проверки, что post_ID > $нижний_порог_post_ID_который_я_хочу_публиковать, но, возможно, есть лучшее решение.

Спасибо,

Привет, @ajolo2ky, не мог бы ты поделиться текущими настройками публикации? В идеале, если бы ты мог отправить файл «meta» из просмотрщика логов.

Конечно,

Вот настройки публикации:

А это то, что я вижу в логах после того, как редактор исправил что-то в посте 2023 года (старый — я не хочу, чтобы он был опубликован на Discourse):

[2025-03-12 14:33:09] publish.INFO: create_post.post_success {"wp_title":"title","wp_author_id":"1","wp_post_id":7} 
[2025-03-12 14:33:09] publish.INFO: create_post.body_valid {"wp_title":"title","wp_author_id":"1","wp_post_id":7} 
[2025-03-12 14:33:09] publish.INFO: create_post.after_publish {"post_id":7,"remote_post_type":"create_post","discourse_post_id":"2","discourse_topic_id":"9","discourse_permalink":"https://discourse.mydomain.com/t/title/9"}

Я не могу публично поделиться содержимым мета-данных, но с радостью предоставлю их в частном порядке, если это поможет.
Спасибо!

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

Вы используете «классический» редактор WordPress:

или новый редактор (Gutenberg)?

Да, это причина, но я ожидал, что будут публиковаться новые статьи, а не отредактированные. Мы используем Gutenberg.

Я знаю, что могу отключить поведение по умолчанию, а затем вручную выбирать новые посты для публикации на Discourse, но надеялся на более удачное решение :slight_smile:

Всё, что я понимаю из логики:

  • новые статьи публикуются в Discourse
  • уже опубликованные в Discourse статьи обновляются при редактировании
  • старые статьи не должны публиковаться в Discourse при редактировании

звучит немного запутанно.

Не имея лучшего понимания программирования, чем тест «Hello World» на Visual Basic, я могу предположить, что это можно реализовать, сравнивая статус статьи со статусом в Discourse, но такие действия имеют тенденцию замедлять административную часть. Или так было в прошлом :man_shrugging:

Думаю, настройки, которые потребуются, будут очень запутанными в настройке.

@ajolo2ky Я понимаю, почему вы могли ожидать, что это будет работать именно так; это действительно что-то, что меня беспокоило некоторое время. Причина, по которой в прошлом это не работало таким образом, кроется в сложности поддержки автоматической публикации одновременно в редакторах Gutenberg и Classic. Многие пользователи всё ещё используют Classic-редактор.

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

Я обновлю информацию здесь, когда/если следующая версия будет выпущена с обновлённым поведением. Надеюсь, это произойдёт примерно через неделю.

Привет, Энгус, большое спасибо. Напоминаю, есть ли какие-то обновления по этому вопросу.

Спасибо!

Привет, @ajolo2ky, спасибо за терпение. Я жду несколько других (не связанных) компонентов для следующей версии плагина WordPress. Я сообщу вам, когда будет выпущена новая версия плагина, и попрошу вас протестировать новое поведение в этом отношении. Спасибо!

Привет, @ajolo2ky! Обратите внимание, что в следующей версии плагина, 2.5.7, существующие записи в WordPress, которые не были опубликованы в Discourse, не будут автоматически публиковаться в Discourse при их редактировании. Эта версия сейчас находится на проверке и будет выпущена в ближайшее время.

Отличные новости! С нетерпением жду обновления!

Привет! Хотел сообщить, что я обновился, и плагин работает как ожидалось. Большое спасибо за выполнение этой просьбы.

Продолжайте в том же духе!