Wordpress blog, comments and manually copying it to Discourse

I am setting up a discourse forum for my blog and as I understand, there is no way to sync migrate existing wordpress comments to discourse topics and as its replies.
Since that is the case, I was thinking of doing this task manually.

  1. Create A discourse topic backdating it to the creation of the blog post
  2. Copy over each of the blog post’s comments to the topic, creating/migrating a user account in the process

I have around 2,000 comments.


  1. Is this a good workflow? Potential flaws?
  2. Can I go an embedded an old blog post and the new back-dates forum top created? Does this mean I’ll have to use the WP-discourse plugin and the WP-discourse-JavaScript plugin together? Is it even possible? Will this conflict?
  3. Do you have a better approach?

It’s fairly straightforward to modify the WP Discourse plugin so that it will publishing existing WordPress comments to Discourse when a post is first published from WordPress to Discourse. A couple of hooks could be added to the plugin so that the modification required for doing this could be added through a separate plugin. The biggest issue with doing it this way is that the posts will be published under the username of an admin user.


Sorry, I miscommunicated. It should have been migration. i.e port over all the exists comments, which I reckon is around 2000+
I am no good with programming, more a business owner and hence the reason to opt manual migration.

The post was already published. Some of them years back. Does that mean the logic you mentioned applies? I am thinking the logic you mentioned applies for “sync” – whenever a new post is published on WP post migration to discourse.

Is there some implementation out there I can take a look under the hood?

There are scripts for migrating other forums to Discourse, but AFAIK there are none for migrating a WordPress blog to Discourse.

Not that it couldn’t be done. Most if not all of the INSERT stuff could be picked from the existing scripts. The WordPress tables would need to be analyzed to determine what the SELECTs would need to be.

1 Like

If you install the WP Discourse plugin you can publish old WordPress posts to Discourse.

I don’t think so. It’s something that I’ve only tried in my development environment. It would take a few hours of work to get it into a state where I could share it. I’m not sure if it would be a good solution for what you’re trying to do. The problem is that the posts (comments) are published under the username of the system user. It’s possible to append some text to the post to indicate which user create the post, but if in the future someone replied to one of those posts, the creator of the post wouldn’t get a notification for it.

One thing you can do with the WP Discourse plugin out of the box is display old WordPress comments on your WordPress site underneath the comments that are pulled from Discourse.

There is an existing plugin to migrate Wordpress comments to bbPress and then there is a migration script from bbPress to Discourse. That’s what I did.


Hahaha. That’s twisted but thank you.

How do I publish old wordpress posts to discourse? I can do this with new posts. I tried testing this by writing a comment on an old wordpress post (posts that we created prior to link to discourse) but the corresponding topic and comment did not get created on discourse.

What am I doing wrong?

If go this route, will the wordpress posts be linked to the discourse topics so that they show up as comments under a wordpress posts?

You should be able to publish old posts without any problem. Do it the same way you publish new posts - go to the post’s edit screen, select the Publish to Discourse checkbox, and then click the Update button. WordPress comments are not published on Discourse, only the post is published. That’s why some sort of migration will be required if we want to get existing WordPress comments onto Discourse.

Hi @iva,

How did you associate the discourse topics to wordpress blog posts after the migration?

Also, did you follow this?