Control which comments are embedded?

Hi there!

Is there a possibilty to control which(!) Comments are displayed on an embedding Website?

If Discussion goes wild, i don’t want to display every (of eventually hunderds) comment under the underlying Webpost.

Any possibilty to achieve this?

Thanks in Advance!
Carsten

1 Like

There is no way to choose specifically which comments are shown when embedding. However there is a site setting embed post limit which limits how many will be attached to any given post. The default is 100.

3 Likes

Thanks for your response!

Perhaps i’ll build my own embed-Code, that gets the most “interesting” reactions.

That’s what the wp-discourse Wordpress plugin does, if you need an idea for which metrics to use…

HI @riking,

but the wp-discourcse-Plugin does not load the Comments client-side, but generates the HTML on the Wordpress-Page, right?

I like the client-side-generation-approach, because it makes caching so much more efficient.

I’ll have a look at it!

Thanks!

Client-side caching in browser isn’t more edficient than server-side caching. For instance, when cache is used server-side, you deliver the HTML generated immediately. If caching client-side in browser, you’ll have tonread the cache and update your HTML, so it may not look instant to the user.

Hi @meglio,

thanks for your input, but i doubt you can say that…

We are working with varnish-Caching in Front of the Website and I guarantee, that it makes sense in this kind of setup.

Client-Side-Handling of personalized Content is standard, if you work with caching-proxys…

Have a good Day!
Carsten

May you elaborate, please: which data and where cached exactly.

We got several Caching-Layers(Varnish, a self-written REDIS-Caching-Plugin for Wordpress and more) in this project. I think it’s not ontopic to explain the whole setup here.

The point is, that in some setup, it can make a real caching-advantage, if the cached data is not altered after every new comment. And that’s what i want to accomplish amongst others.

I had a look into the discourse-code at the weekend and tend to write my own implementation of what i need in the next weeks.

Thanks for your help!

Still not clear, where would you like the comments to be cached? In browser?

I just want to cache the HTML of a Page independent from the Comments, so i dont have to invalidate Cache-Objects in Varnish for every new comment incoming.

I’m confused, sorry. When you embed Discourse comments via JS, your comments are generated client-side, AFTER the page is loaded into the user’s browser. So you’re free to cache whatever HTML your page is: it will include the JS-comments embed code, but not the comments themselves.

I haven’t learned much about the native Discourse comments embedding via JS, but that’s how js-embedding works. Unless I misunderstood your goals.

Hi @meglio,

we discussed here two possible implementations:

native discourcse-js-embed-solution: lacks a possibility to control what posts are displayed in situations where hundreds of posts are posted in a thread. you can control the number of posts, but nothing like "display only the most-liked-posts, if there are more then 30 posts in the thread. But it is client-side in the way i need it - right!

wp-discourcse-plugin: The Discourse-Plugin for Wordpress implements the Discourcse-Posts as Comments in the Wordpress-Comment-Database. The Comments are implemented (as HTML) into the corresponding HTML-Document and are not integrated Client-Side.

That makes it clear?
Carsten

Yes, thanks. So what you’re saying is that you’d like to have some caching of the comments HTML server-side in the Discourse’s WordPress plugin, so that the whole page HTML does not need to re-render with every load?

What we did for BBS probably should carry over as an option.

On BBS we display comments that were liked by staff members. I think that is a very good option to add here.

@carstenwawer perhaps do a PR for this?

6 Likes

Hi @sam, @carstenwawer,
Did this get implemented? If yes, can you please point me to where I should be setting it?

Bumping a super old topic. Maybe I should start a new one?

I’m not sure how things were in 2016, but Google is now indexing embedded Discourse comments. You can confirm this by searching for some of the comment content from https://blog.discourse.org/. Note that Meta hasn’t enabled the embed set canonical url setting, so you may get duplicate results when searching blog comments, or you may have to click the “Show additional results” link on Google to have blog comments returned instead of just having the Meta post returned.

My concern around this is largely SEO related. Irrelevant or negative comments can hurt SEO. Relevant comments that add additional context to a blog post can help SEO: Google On The SEO Value Of User Comments On Websites.

The WP Discourse plugin deals with this by having an Only Show Moderator Liked option to control which comments are displayed. Adding a similar feature to embedded comments would be straightforward, but would it be better to have an explicit checkbox shown to staff to determine whether or not comments get displayed on a blog post?

2 Likes

This feels like a different topic to me. Yours is about optimising SEO. This one is simply about controlling what gets shown.

I’m just stating another reason to implement the feature that was asked for in the OP. I’m not overly interested in SEO, but in this case it seems straightforward.

My real question was what the UI for the feature should look like. The WordPress plugin relies on a moderator having liked a post: https://github.com/discourse/discourse/blob/main/lib/filter_best_posts.rb#L29. It would be easy to add that functionality to embedded comments, but it doesn’t seem like the ideal way to control which comments are displayed.

I’m not sure how much interest there is in promoting the use of Discourse as a comment system for websites. Maybe that deserves a separate topic.