Link existing forum topic to new WordPress post

I am not entirely sure how the WP Discourse plugin injects the comments into the page. Would the shortcode then do this wherever I put it?

I was more thinking of having a way to specify an existing url inside a post, rather than pushing to discourse with a new topic, like so:

image

Essentially, just a way to link an older post to an existing comment thread.

Iā€™ve done some work on making a shortcode for displaying Discourse topics. At this point, it only displays the first post in the topic, it doesnā€™t display any of the comments. It gives you the option of displaying the full post content, an excerpt, or just the title and some metadata about the topic.

The styles Iā€™m using here are rough, but this gives you an idea of how it could work. Adding a couple of shortcodes like this:

[discourse_topic topic_id=384 excerpt_length=45]

[discourse_topic topic_id=385 excerpt_length=45]

will output this:

The shortcodes can be added anywhere you like within a post.

This isnā€™t yet available in the version of the plugin thatā€™s in the WordPress repository. If the basic idea seems correct I can add it to the repo in the next few days.

4 Likes

Iā€™m not sure how this would help in my scenario.

My problem is that I have manually created Discourse topics for old blog posts and then simply put a link to the forum at the end of the post:

image

Obviously this is sub-optimal because it doesnā€™t show any of the comments on the blog and gives no indication of engagement.

What I hoped to do is install the WP Discourse plugin and use it for any new blog posts but also go back to old posts and manually link the posts with the forum topics with the hope that they would display the same way as any new post would (ie. showing the comments directly on the blog post). Does this make sense?

Yes it does. Iā€™ve moved this discussion to an existing topic. There seem to be two separate feature requests in this topic: linking posts in a way that will pull the Discourse comments to WordPress, and just adding a Discourse topic link to a WordPress post.

It is possible to link an existing post to an existing topic so that the Discourse comments are displayed on WordPress. This is based on what @joebuhlig does in the PR in this topic, but with some changes to the Discourse meta box. When the WordPress post editor for a post that is not linked to Discourse is opened, it will first look like this:

12%20PM

Selecting Create new Topic displays this:

28%20PM

Selecting Link to Existing Topic displays this:

41%20PM

After either creating a topic, or linking to an existing topic, the metabox displays this:

28%20PM

Selecting the Unlink Post checkbox removes the Discourse metadata from the post so that it no longer displays Discourse comments.

The biggest issue with doing this is that itā€™s not possible to set the Discourse topic embed_url for topics that already exist on Discourse. That could be made to work, but would require some changes to the Discourse code.

9 Likes

This is exactly what I was after. I donā€™t understand what the Discourse topic embed_url would do and whether I would need it but Iā€™m looking forward to trying this out, once the PR is merged. Thanks!

2 Likes

Thanks Simon! Yes that is along the lines of what I am trying to do.

Being able to display any post within the topic (instead of just the first) would also be super cool and helpful.

Thank you for the helpful reply.

So just to be clear, I cannot use this shortcode yet? I tried adding [discourse_topic topic_id=1259 excerpt_length=45] to one of my wordpress posts but nothing was displayed.

I am assuming that what I am pointing to below is the topic ID?

No, at the moment it only exists in my development version of the plugin.

2 Likes

Ok, gotcha. Thank you.