I was assuming that your private posts were already using a custom post type, but it sounds as though they are just regular posts, set to ‘private’ here:
There are two places in the wp-discourse code where the post_status is checked to make sure that a post has the published status before publishing it to Discourse.
- https://github.com/discourse/wp-discourse/blob/master/lib/discourse-publish.php#L77
- https://github.com/discourse/wp-discourse/blob/master/lib/discourse-comment.php#L222
If you can wait until early next week, I’ll add a filter that lets you override this behaviour.
