A way to reorder posts?

is there a way to reorder posts in a topic? the problem occurs when threads are created by select + move posts by multiple moderators.


This would require the ability to set timestamp on the posts cc @sam @tgxworld

Why? Are the posts always supposed be in order of time? …because that’s not what I’m seeing.

I reproduced by selecting 10 posts from the bottom of a long topic and moving them into a new topic. Then I selected 3 from the top of the same topic and moved them into the same new topic. The 3 are showing up at the end, the 10 are showing up above the 3.

If that’s not what you were implying, ignore this post :smile:


Oh yes I forgot about that. Good point. We thought it would be bizarre if previously sequential posts had other posts randomly interspersed with them. So a pure time order of insertion when splitting topics seemed like a bad idea…

1 Like

Your decision was a good one, and the ability to move posts to an existing topic is awesome way of cleaning up the site, but it gets confusing if you can’t reorder.

It helps a ton when trying to keep topics on-topic.


What is the priority on this? I expect this to be pretty nasty. :cat2: (Wait this is a cat???..)

I think this is hard/complex enough we should defer and attack other more 1.4-ish problems for now.

1 Like

Hi, I just had the same problem and, I think, an easy an elegant solution would be to allow for posts to be “moved from one topic into the same topic”. At the moment it is not possible to press “Move into existing topic” and then enter the same topic ID as the original topic (e.g. moving posts from ID 10820 to ID 10820, for them to appear at the end of the post list).

What do you think about it?


Today, I was trying to illustrate a potential use case for Discourse. We have some “weekly update” communications from various teams that are currently sent via email. I wanted to show how this would look if we did this in Discourse instead, so I was going through my inbox and copying/pasting messages into an example topic in Discourse. I wanted to change the dates to match the original email dates. This way the “gaps” and the “timeline” in the progress bar would look more “real”.

Would be cool if we could do this. (Might come up again if there’s enough interest in actually migrating old content into Discourse, though perhaps that will just be done by some other means).


Not sure if this is the right place for this query but it was pointed out to me in reply to a topic I recently created. As I stated:

I’ve got a few dozen comments that I’m manually importing (we’re talking copying and pasting into the comment box) from Commentics to Discourse. Supposing a previous user from Commentics has set up an account with my new Discourse install I discovered that I can change ownership of the comment from me (as the copier and paster) to said user. What I’m wondering is, now that I’ve done that is it also possible to change the timestamp of said comments in a similar way to how it’s possible to change the timestamp of a topic? If not, would it be possible via some non-GUI method?

In the process of moving some wikis to discourse, I came across this issue. I’d like to do what I’ve seen here on meta where a topic has a series of wiki posts in it. This is helpful because it lets those that follow (including our future selves) to quickly edit a section without having to scroll through loads of markdown.

Reordering these posts after they have been posted becomes a challenge. Am I right in understanding that the “official” method for slotting in a post later is to select the ones that should go below, move them to a new temporary topic, then move them back again after adding the new post?

Or, if all the posts you want to reorder exist already, you’d move them into new temporary topics and then move them back in order you want?

This somehow seems… complicated. Also, it seems to leave behind artifacts like this that I am not seeing a way to remove.

Is there something I am missing here?


Dear all, apologies for resuming a quiet topic after some time.

For our community the ability to change the timestamp of single posts is quite important. Let me explain my case.
My community deals with space missions. I have developed a small bot that opens a new topic via API when a mission is “officially” announced, but this does not prevent our users discussing that very same mission quite in advance with respect on the API-created opening of a new topic.

Now, our need is the ability to merge the topic created via API with the one created (earlier) by our users, but having the first post of the former as the first topic of the merged topic.

As the API-created topics are (usually but not always) having one post only, at the moment our workaround is to change the timestamp of that topic and only after proceed with the merger. The situation becomes quite more complicated in case some user decides to comment in the the API-created topic before we merge. In this case a shift back of the timestamp will “drag” all posts back in time, and this is something we really don’t want.

Long story short, the abiliy to merge topics and then cherry pick posts we want to move up/down in time would be precious. If doing this in UX is considered too much of an effort, no worries. I think that even a dedicated rake task (something that takes a post_id and a ISO date as parameters) that after the change calls for the existing rake task to reorder posts in a topic could be enough.


So, the posts:reorder_posts rake task isn’t enough for you? You can change post timestamps via API or UI before executing that task.


Yes and no.

As said, I need a specific post to be the first of the merged duscussion thread.
Using the posts:reorder_posts option would place this “special” post right where it belongs in order of time, but that would be a no go.
So the list of actions should be:

  1. apply a new timestamp to a specific post (or posts)
  2. merge the topics
  3. run posts:reorder_posts rake task to put everything where it belongs

The change of timestamp available today is applicable only to an entire topic, and all posts in that topic will be re-timestamped according to the delta time applied.