This is in relation to a conversation with @adam on IRC (again).
Basically, posts can be published normally but unlisted on the blog itself or from the feeds. Currently, the only things hidden from feeds are pages, files, templates, drafts, and future-dated posts.
Some ideas proposed in the conversation (thanks, @adam, @koehn and @nicolas !)
Status: Unlisted
Publish to: web / feed
Hide from: feed / web (opposite of 2nd bullet)
naming hidden posts with a starting dot (like hidden files on Linux)
The dot idea is clever, though it would be a little tricky to adapt to the web interface (where you can’t really name your “files” as easily). Thinking about it a bit further, I think this will work:
Unlisted posts:Status: Unlisted will make a post available but “invisible” to anything that would otherwise display or link to it. That includes tag page output, post list output, and feeds. This will be the option for content that you want people to be able to access if they know the URL, but shouldn’t be otherwise advertised or linked from within the weblog engine itself.
Web-only posts:Status: Web Only will make a post appear on the web only, omitting it from feeds.
Feed-only posts:Status: Feed Only will make a post appear in feeds only, hiding it from the web in the same manner as Unlisted does.
Unless I’m overlooking something, I believe that using Status for all three of these modes will get the job done (I can’t think of any overlap or conflict here, but please let me know if I’m missing something). This will mean that Status will ultimately have four different possible values:
Draft, which makes it inaccessible from anything other than the back-end web UI (or Git, if you’re using that)
Unlisted, which hides it from everything but allows it to be accessed via its URL
Web Only, which hides it from feeds
Feed Only, which hides it from the web
I can work on this soon, but again, let me know if there are other implementation approaches that might make more sense or if anyone can foresee any issues with this plan. Thanks!