There’s something that should get fixed here. If posts are published with the Classic editor, the WP Discourse plugin has two ways of marking posts to be published as unlisted. There’s a “Publish as Unlisted Topics” option on the plugin’s Publishing settings tab, and a “Publish as Unlisted” checkbox on the post edit page. If the option on the Publishing settings tab is enabled, posts will be published as unlisted to Discourse and the value of the “Publish as Unlisted” checkbox on the post edit page will be ignored.
When the Block editor is used to publish posts, there is only the site wide option on the Publishing settings tab to mark posts to be published as unlisted.
For your issue, I’m assuming you have the site wide option enabled:
Let me know if that isn’t the case.
For the larger issue. Things work as they do for historical reasons. For some reason, when support for the Block editor was added to the plugin, the decision was made (by me) to move the “unlisted” setting from being a per-post option to being a site wide option. I can’t remember what the reason for that was, but the way that setting now works with the Classic editor is confusing. There are a few ways it could be improved.
Also, after the publish as unlisted functionality was added to the WP Discourse plugin, Discourse introduced similar functionality for Discourse topics that are pulled in from another site with Javascript: Embed Discourse comments on another website via Javascript. This is controlled with the embed unlisted
Discourse site setting. It would be great if that setting could handle topics that were published to Discourse via the WordPress plugin. If it could, the WordPress plugin could remove its “publish as unlisted” setting.