A couple of questions about suppressing posts

I’ve edited some old posts to clean them up after importing them, and that pushed them to the top of the lists. Is there a way to drop them back down so that they aren’t featured? They are irrelevant to the community and it would be better if they remain buried.

[Edit: I just figured out what the “reset bump date” button does. :slight_smile: ]

Also, is there a way to hide posts without showing users that the posts have a “hidden” status? Sometimes people post spammy things, and it’s easier just to keep them out of the main content lists and digests than to have conversations with the posters about why their posts were hidden. If we publicly mark them as “hidden”, then it could lead to long public conversations that are just going to waste time and sidetrack the conversations.

1 Like

After a bit more experimentation, it looks like I’m still seeing hidden threads in the lists because I’m an admin. When I visit the pages directly with a trust level 2 user account, I can still see icons and messages that say that the topic is hidden. What I’m trying to do is make it hidden but not show any indication that it’s hidden to the users – otherwise it’s potentially going to start long discussions that take up a lot of time. Is there any standard way to do that?

Your use of terminology is very confusing to me. Your goal is to “hide” content in a way that is visible only to staff, but what content are you referring to?

  • If you are referring to entire topics, you can make the topics unlisted, but this will be visible to anyone who already had a link to the topic. You could also recategorize the topic into a staff only category which would render it unviewable to anyone who is not staff.

  • If you are referring to specific posts in a topic, deleting those posts will make them 100% invisible to everyone but staff.

1 Like

Sorry, I’ll try to use Discourse’s terms. I mean that I want some topics to look like normal topics (no visible indication that they are hidden) but just suppressed from all main lists and emails – not exactly shadow-banning, but just a way to keep the borderline spam and irrelevant stuff out of the main community without having to get into long discussions with users about why their topics were hidden. If a user goes to check on their topic by the link on their own profile page or from a direct URL, the suppressed topic would look like any other topic to all the users without any indication that it’s hidden.

Sometimes I want to keep things out of the forum without the long discussions and chaos that sometimes come from openly hiding or deleting things. I don’t want to delete the content, but just reduce the workload that comes from certain situations.

I think recategorizing the problem topics into a less visible category (edit permissions to taste) is your best (and maybe only) bet.

Making a topic unlisted is the other option, but this state is visible to anyone who has a link to the topic.

There is no secret penalty box for topics, I am afraid. There was some discussion of a “sink topic” feature, where replies never bump the topic, but public desire for that has been nil.

1 Like

Ok, thanks, I’ll try to figure something out. Is there a way to just suppress specific posts from the email digest without recategorizing them? I don’t want to broadcast those topics/posts to everyone (people try to advertise on the forum in subtle ways, and it gets terribly complicated), but moving the topics to a separate section might cause other problems.

If there is no built-in way to do it or existing plugin, I’ll try to find a couple of plugins with similar features and see if I can figure out how to write something that does it.

By “posts” do you mean “topics”? I am not aware of any way to suppress specific topics from the digest. You would need to recategorize them for that to work.

1 Like

Yes, topics, but in the digests there are five topics and then, below that, a heading that says “Popular Posts”. I’m hoping to find a way to be able to quietly mark any topic with a setting that says “don’t include anything from this topic in digests.”

Do you think that it wouldn’t be possible with a plugin and it isn’t worth trying, or just that there isn’t a built-in way to do it?

The main need for it is due to the advertising problem. If I put them in another category, it would eventually cause drama as people realize it’s the “insidious advertising” category. I can delete the obvious spam, but there is a gray area that causes time-consuming problems and bad feelings among some people. I don’t want to broadcast that content to the entire userbase, because that will cause other problems. (It’s a bit complicated.)

This is a community issue, not something that can be solved with software IMO.

Do you mean that it can’t be done with a plugin? (I’m just wondering if it’s even possible to do with a plugin before I spend hours or days researching it.)

The situation is more complicated that I can describe in a short post. Our community is unusual in some ways, so the reasons might not be clear.

What you’re describing is so close to shadow banning that it doesn’t really matter that it’s not technically the same thing. Jeff thinks you’re wrong because you’re trying to avoid actually discussing with your users what content is welcome in your forum.

Worse, since the features that Discourse has are public knowledge, having the feature there means that users will watch for evidence that you’re using it. If you’re lucky, they’ll visit your forum through Tor, scroll through the list until they reach posts that they know are older than the one in question, and figure out that you hid it. If you’re not lucky, they’ll accuse you of demoting their topic when it doesn’t get any engagement (whether or not you actually did). Lack of transparency breeds paranoia.

Just ask Twitter.

1 Like

Thanks for your reply. It’s more complicated than what I can explain here, and it isn’t the same kind of shadowbanning that you’re thinking of. The situations we deal with aren’t about transparency.

For the moment, I’m okay with just being able to suppress specific topics from the email digest, and I’m wondering if it’s possible to do with a plugin or if researching how to do it will be a waste of several days time. :slight_smile:

That’s your words; that’s specifically “the same kind of shadowbanning that I’m thinking of”. And unless there’s some really big game-changing piece of context that you haven’t mentioned, avoiding those kinds of conversations is a bad idea.

The ironic thing is that I don’t actually have a categorical opposition to shadowbanning. If you’re using it on spambots, trolls who’s behavior is indistinguishable from spambots, or a Nope Tier problematic post, feel free to do whatever’s necessary to get them to leave you alone.

The problem is when you use it on users who don’t know what they did wrong, or worse, who suspect that they might have done something wrong but aren’t sure. Ambiguity about what’s allowed and what isn’t is probably the single worst thing you can do as a moderator. The second worst thing, of course, is to perform anything that the forum members perceive as Orwellian revisionism. Having those tough conversations is a part of the job of moderating a forum, as is defusing discussion-killing emotions like paranoia.


Technically you could create a plugin for this, but there is very little built in extensibility so you may be forced to monkey patch.

How are you going to maintain your list of “these topics are A-OK but banned from digest” ? I guess you can tag them or something.

Overall it feels to me like you are reaching for severe and complex changes to software to avoid changing people. I am not sure this is the right path to take, it is certainly a path full of pain.


I went through the plugin tutorial several times, but I’m not sure exactly how it could be done. This post says that custom fields can be added to topics. If I could get a plugin to add a custom field like is_suppressed_from_digest = true to an occasional post, is there a hook somewhere in the digest code that would allow me to filter out any posts from the digest that have that custom field set to true? I don’t even need a UI but could set the custom field in the Rails console.

I don’t know Ruby well and I’m relatively new to Discourse, but I might be able to figure it out if pointed in a general direction.

There is no official hook here you are going to need to monkey patch.


Thanks, that makes things clearer. I’ll see if I can figure it out something from there.

I just noticed that you wrote a shadowban plugin. That’s not what I’m trying to do, but it’s interesting to look through the code, so thanks for posting it.

I’ve been running forums for a long time and am familiar with the benefits and drawbacks of various approaches. My situation is something different than what you’re describing.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.