Только что обновили программное обеспечение, и теперь темы, созданные через WordPress, не отображаются в списке.
Я понял. Но есть ещё что-то связанное с этим, что тоже происходит. Даже обновление ссылки/подключения к Discourse может вызывать это, но не всегда. В большинстве случаев это не приводит к снятию постов с публикации.
Я не стал делать никаких запросов, потому что это слишком непоследовательно, и я не могу дать даже полусерьёзные рекомендации по тестированию. К тому же я не до конца уверен, в чём именно сейчас проблема: в WordPress, в плагине или в самом Discourse.
Я изменил настройку сайта embed unlisted, и теперь мои новые записи WordPress отображаются как публичные. Я не уверен, какое решение будет долгосрочным, но пока это сработало.
Это быстрое исправление не работает у меня. Я использую версию 2.5.1, и не имеет значения, включена ли настройка «Опубликовывать сообщения как скрытые темы Discourse» или нет.
Есть какие-то идеи, как это исправить?
У меня возникла та же проблема. Есть какие-либо рекомендации?
Столкнулся с этим сам. В WordPress у поста есть флажок, чтобы сделать тему в Discourse скрытой. Он не отмечен. Но пост в Discourse всё равно скрыт.
В Discourse я сейчас снял галочку с настройки “embed unlisted” и посмотрю, поможет ли это, но очевидно, что проблема с плагином WordPress и тем, как он сейчас взаимодействует с Discourse.
Да, это решит проблему: Comments not appearing and posts unlisted - #5 by simon.
Это работает как задумано, но, я думаю, нужно найти способ чётко указать, что темы могут быть исключены из списка либо со стороны WordPress, либо со стороны Discourse.
Так не работало последние 5 лет, и, на мой взгляд, так и не должно работать.
Если настройка на стороне WordPress не позволяет переопределить настройку по умолчанию на стороне Discourse, её следует удалить.
ETA: Я не проверял это, но ваш комментарий, похоже, подразумевает, что сторона WordPress может переопределять сторону Discourse, но только для скрытия тем из списка. Это очень запутанное поведение. Настройка должна работать для последовательного переопределения настройки Discourse (показывать в списке, если по умолчанию скрыто, и скрывать из списка, если по умолчанию показано), иначе пользователи WordPress всегда будут путаться.
Но это не так, верно? Как вы сами написали:
Очевидно, что этот параметр больше не работает как задумано.
Вот моё понимание ситуации:
- Плагин WordPress больше не имеет никакого контроля над тем, будет ли публикация скрыта из списка, начиная с момента слияния этого PR: Apply embed unlisted setting consistently by angusmcleod · Pull Request #24294 · discourse/discourse · GitHub @angus
- На сайте Discourse есть настройка, определяющая, будут ли все темы из WordPress скрыты из списка —
embed unlisted. По умолчанию она включена (true). - Это означает, что все пользователи плагина WordPress по умолчанию создают скрытые темы, пока не обнаружат проблему, не найдут эту ветку поддержки и не снимут вручную галочку с
embed unlisted.
Мне это кажется крайне плохим решением. Как минимум, я ожидал бы:
- Параметр
embed unlistedдолжен быть по умолчанию выключен (false). Я не могу понять, зачем кому-либо вообще нужен такой режим, и особенно по умолчанию! - Поскольку параметр плагина «Опубликовать как скрытые темы» больше не имеет никакого эффекта, его следует удалить.
Привет, ребята, оба параметра работают как задумано. Вот как это устроено.
-
Если в настройках WP Discourse отмечен пункт «Опубликовать как незаметные темы», плагин WP Discourse будет публиковать темы в Discourse как незаметные.
-
Если в настройках сайта Discourse отмечен пункт «Встраивать незаметные», то встраиваемые темы, включая (но не ограничиваясь ими) темы WP Discourse, будут незаметными.
Если включён хотя бы один из этих параметров, темы, публикуемые плагином WP Discourse, будут незаметными. Если вы не хотите, чтобы темы, публикуемые плагином WP Discourse, были незаметными, не включайте ни один из этих параметров. Думаю, я сделаю видеообъяснение по этой теме, так как всё ещё возникает путаница.
Темы WP Discourse всегда были встраиваемыми темами. Предыдущее положение дел, когда параметр «Встраивать незаметные» исключал темы WP Discourse, было несогласованным, скорее исторической особенностью, и сам по себе создавал проблемы с удобством использования. По общему правилу, настройки сайта для встраивания включают темы WP Discourse.
На этом форуме есть несколько тем, где это обсуждается, и некоторые, где выражается альтернативная точка зрения. Тем не менее, в целом и после того, как я увидел реакцию на изменения, я считаю, что значение false по умолчанию имеет смысл.
Посмотрим, согласятся ли другие.
Предлагаю добавить уточнение на стороне WP, например: «Этот параметр будет переопределен настройкой Discourse embed unlisted, если она включена».
Я понимаю вашу позицию, однако ни один из этих параметров не переопределяет другой. Оба просто скрывают темы WP Discourse из общего доступа при включении. И всё. Тем не менее, если мой PR по какой-то причине не будет принят, я добавлю примечание о необходимости проверки настройки «Скрыть с сайта» для встраивания.
Я провёл дополнительное исследование и теперь понимаю, как вы логически пришли к такому выводу, но считаю, что ваш PR #24294 следует откатить.
Встроенные темы обычно создаются пользователями при просмотре
Функция встроенных тем в Discourse имеет очень скудную документацию. Вот она: Embed Discourse comments on another website via Javascript В этой документации описывается, как можно интегрировать Discourse в любой блог без использования плагина WordPress.
В реализации, которую рекомендует Discourse, простое посещение записи блога автоматически создаёт тему для этой записи в Discourse.
Поскольку в блоге может быть сотни записей, это означало бы, что посетители-пользователи автоматически создавали бы сотни пустых тематических веток просто при просмотре блога, что фактически засоряло бы форум. Именно поэтому параметр embed unlisted по умолчанию имеет значение true, чтобы предотвратить автоматическое создание сотен пустых тем пользователями, читающими блог.
Темы в WordPress могут создаваться владельцем блога при нажатии «Опубликовать», что совершенно иное
В плагине WP есть флажок «Опубликовать», который позволяет публиковать записи блога на форуме одновременно с их публикацией в WordPress.
Когда владелец блога нажимает «Опубликовать», мы хотим, чтобы на форуме создавалась и была опубликована тема. Именно поэтому в плагине WP было создано отдельное значение «Опубликовать как скрытую» (Publish unlisted), которое не зависит от настройки embed unlisted.
Можно представить, что в плагине WP вообще не было бы функции публикации. Владелец блога публиковал бы запись, затем просматривал её; просмотр записи (как пользователь) создавал бы тему на форуме в скрытом виде. Затем владелец блога мог бы перейти на форум и вручную открыть встроенную тему, чтобы сделать её видимой.
Но это неудобно и запутанно, когда я, как владелец блога, действительно хочу, чтобы на форуме появилась видимая, опубликованная тема, то есть когда я хочу кросс-публиковать запись блога на форум.
Именно поэтому в плагине WP было отдельное значение, чтобы переопределить и обойти настройку embed unlisted, действительно и по-настоящему кросс-публикуя на форум.
Наличие отдельного значения для публикации не было исторической случайностью
Я думаю, что здесь произошло следующее: вы спросили: «Кто-нибудь знает, почему плагин WP не учитывает функцию embed unlisted?», и никто не смог вспомнить причину.
Но я надеюсь, что я показал, почему эта функция существовала. Она была создана намеренно, а теперь она сломана.
Очень неприятно, что встроенные скрытые темы вообще должны существовать
Как многие-многие люди уже говорили, странно, что конечные пользователи могут создавать тему в Discourse просто читая запись блога.
В идеале публичные встроенные темы должны создаваться, когда владелец блога публикует запись. Тогда пользователи могли бы нормально отвечать на эти темы.
Но если запись блога была опубликована без создания темы, то всё ещё бессмысленно создавать тему, когда пользователь просматривает запись блога. Вместо этого встроенная тема должна создаваться, когда кто-то отвечает на запись блога.
Создание скрытых встроенных тем — это хакинг, имитирующий такое поведение. Скрытые темы автоматически становятся опубликованными, когда кто-то отвечает на них.
Я ценю, что вы провели своё исследование. Я также понимаю, почему вы не хотите использовать эту функцию. Тем не менее, в этой истории есть и другие аспекты, и есть люди, которые используют эту функцию. Как уже упоминалось, изменение настроек по умолчанию, вероятно, будет уместным.
Но изменение настроек по умолчанию навредит всем, чьи встроенные темы создаются пользователями, просматривающими их сайт!
Отмена этого PR — лучший компромисс, который я вижу.
Я ценю вашу твердую позицию по этому вопросу, однако имейте в виду, что другие используют плагин иначе, чем вы — довольно много людей хотят, чтобы их темы WP Discourse по умолчанию были скрыты от публичного доступа. Кроме того, это изменение было внесено также для решения проблем с удобством использования с противоположной стороны; например, посмотрите:
Я сталкивался с вариантами той же проблемы в других контекстах. Я также ценю то, что вы говорите. В данном случае ситуация скорее сводится к взвешиванию вариантов. Завтра я ещё раз пересмотрю это.
Это просто не так. Я установил в WP параметр «публиковать», но пост не публикуется. Вместо этого он скрывается. Единственное возможное объяснение этому — что настройка в Discourse имеет приоритет.
Если система продолжит работать таким образом, в WP необходимо внести соответствующие уточнения.
Добавлено после редактирования: Также было бы полезно изменить название настройки в Discourse на «Принудительное скрытие» или что-то в этом роде.
Да, именно это я и сказал. Я внимательно изучил ту ветку перед тем, как подытожить проблему здесь.
Я согласен, что довольно много пользователей хотят, чтобы их темы WP Discourse по умолчанию были скрыты от списка, даже при публикации. В 2023 году эти пользователи могли сделать свои темы WP Discourse скрытыми по умолчанию, установив флажок «Опубликовать как скрытые темы», поэтому откат вашего PR удовлетворил бы их потребности.
Мне кажется, вы, возможно, упустили мою мысль? Моя мысль заключается в том, что флажок в плагине WP существует отдельно от функции embed unlisted не просто в результате исторического совпадения, а для решения нескольких пересекающихся и противоречивых сценариев использования:
- Пользователи, использующие встроенные темы без WordPress (которые используют
embed unlisted) - Пользователи плагина WP, которые хотят, чтобы кнопка «Опубликовать» создавала видимую тему для кросс-постинга
- Пользователи плагина WP, которые не хотят, чтобы кнопка «Опубликовать» создавала видимую тему для кросс-постинга; в этом смысле они больше похожи на пользователей без WordPress
Я не думаю, что все используют плагин WP так же, как я. Но наличие отдельных флажков (флажок «Опубликовать скрыто» в плагине WP, отдельно от флажка embed unlisted в настройках сайта Discourse) эффективно удовлетворяет потребности всех этих разных групп пользователей.
Именно объединение их в один создает конфликт. Поэтому PR должен быть откатан, чтобы поддержать всех видов пользователей с различными сценариями использования.
Извините, я должен был выразиться яснее. Я использовал слово «переопределяет» в причинно-следственном смысле. Отбросив семантику, я понимаю вашу обеспокоенность.
Я понимаю вашу точку зрения, Дэн, и ценю, что вы её изложили. Да, предыдущее положение дел работало в определённой степени, однако у него были свои проблемы и несоответствия.
Спасибо всем за ваши мнения. Я ценю, что вы высказываетесь с добрыми намерениями, и понимаю ваши опасения. Мы также обсуждаем это внутри компании. Скоро я опубликую здесь ещё одно обновление.
Обратите внимание: если вы просто хотите, чтобы темы WP Discourse не были в списке, и вас не волнует эта дискуссия, убедитесь, что отключены как настройка WP Discourse, так и настройка сайта
embed unlistedв Discourse — и всё будет работать.

