Embedding a list of Discourse Topics in another site

What could one modify to specify multiple categories?

2 « J'aime »

Should I expect this to work when the “other site” is running locally at http://localhost:8000 and the Discourse site is non-local on an https subdomain? Or would the “other site” also need to be on a “real” domain?

The script file appears to be fetched fine and I don’t see errors in the JS console. The “other site” is a Gatsby/React site; I’m adding the <d-topics-list> element once the page is rendered in the browser via useEffect, and it looks correct to me in the live DOM (see screenshot)…

Screen Shot 2021-05-19 at 9.21.08 AM

2 « J'aime »

Going from https to http usually causes problems, but you can confirm by opening your browser console F12.

4 « J'aime »

Aha, my issue appears to be that React is messing with the client-side DOM, resetting it to match the server-rendered DOM (with the raw <d-topics-list> element) immediately after the embed-topics.js script inserts the iframe.

5 « J'aime »

Anyone know what this error is about??

Latest Discourse Build
Latest Chrome Browser

Refused to frame ‘https://vapingcommunity.co.uk/’ because an ancestor violates the following Content Security Policy directive: “frame-ancestors ‘self’”.

3 « J'aime »

Most likely related to this change: (cc @falco)

Do you have your main site registered under Admin > Customize > Embedding?

7 « J'aime »

Bingo! Didn’t see that change, all working perfectly again, thanks so much :wink:

5 « J'aime »

Quelqu’un obtient-il des erreurs « Refused to frame » ?

J’ai activé les sujets intégrés et j’obtiens

Refused to frame 'https://myforumurl.com/' because an ancestor violates the following Content Security Policy directive: "frame-ancestors 'self'".
1 « J'aime »

Essayez-vous d’intégrer l’intégralité de votre forum sur un autre site ? Cela ne fonctionnera pas.

L’OP décrit comment intégrer des listes de sujets sur un autre site, mais vous ne pouvez pas exécuter Discourse dans une iframe pour les raisons que vous décrivez.

3 « J'aime »

Non, juste les derniers sujets. J’ai suivi les instructions pour activer le sujet intégré dans les paramètres et copié les scripts dans l’en-tête et le corps du site hôte. Je ne suis pas sûr si l’erreur est causée parce que le site de développement sur lequel je le teste n’a pas le SSL.

3 « J'aime »

Ceci est dû aux paramètres de sécurité de votre site, et non de Discourse.

4 « J'aime »

Ça fonctionne. Il suffisait de lire attentivement les instructions :slight_smile:

4 « J'aime »

Ceci fonctionne très bien, mon seul problème est que Google indexe l’URL de l’iframe elle-même

Par exemple, j’ai des sujets Discourse intégrés sur cette page

Google semble indexer la page ci-dessus correctement… mais il indexe également les URL ci-dessous, ce que j’aimerais corriger

https://discuss.flynumber.com/embed/topics?discourse_embed_id=de-zse3f2nh3&template=complete&search=Romania&per_page=5

Y a-t-il un moyen d’ajouter une balise meta noindex sur les pages ci-dessus ? Ou encore mieux, d’ajouter cette nouvelle balise Google sur les pages ci-dessus

5 « J'aime »

Intéressant, merci pour l’astuce @nader.. devrions-nous ajouter cette nouvelle balise à l’<iframe> par défaut @falco, ou en faire un paramètre ?

4 « J'aime »

Ça devrait le faire

6 « J'aime »

Je voulais juste signaler que ceci sert le ' noindex, indexifembedded ' à tous les robots d’exploration, même si ce n’est que Google qui prend en charge le nouveau indexifembedded

Cela devrait probablement être changé en x-robots-tag: googlebot:noindex, indexifembedded

Ou supprimé complètement car le noindex pourrait avoir des conséquences imprévues sur d’autres moteurs de recherche.

1 « J'aime »

Je doute que le mot supplémentaire soit particulièrement nuisible aux autres robots d’exploration. Avez-vous des preuves que c’est le cas, par exemple, d’autres robots d’exploration déconseillent-ils aux sites d’utiliser indexifembedded ?

(La plupart du temps, lorsque l’on écrit du code comme celui-ci, on a tendance à ignorer les balises HTML que l’on n’attend pas, c’est un peu le comportement par défaut pour HTML.)

3 « J'aime »

Je ne vois pas cela, mais sur la page Google il est indiqué :

Actuellement, seul Google prend en charge la balise indexifembedded.

Je suis d’accord qu’ils ignoreront indexifembedded, mais ma préoccupation est que noindex cause des problèmes de SEO pour la page sur laquelle il se trouve.

Alors, laissons Bing explorer une URL qui contient des embeds de sujets. Il explore cette URL et explore également l’URL de l’embed

/embed/topics?discourse_embed_id=XXXXXX....

Si ce qui précède est noindex, je crains que cela nuise au SEO de la page qui présente l’embed du sujet.

Tout cela est résolu en utilisant x-robots-tag: googlebot:noindex, indexifembedded, mais je comprends pourquoi Discourse pourrait ne pas vouloir favoriser 1 moteur de recherche. J’espère que cela deviendra la norme, mais pour l’instant, il semble que ce soit juste Google.

3 « J'aime »

Salut ! Je voulais juste demander s’il n’y a toujours aucun moyen intégré de faire ouvrir les sujets intégrés avec target="_blank" au lieu de target="_parent"

3 « J'aime »

Juste curieux de savoir pourquoi je ne peux obtenir qu’un seul sujet ? Quelqu’un sait ?

Voici la catégorie (qui a de nombreux sujets) : Amazon Specific - eCommerce Sellers Forum

Et le code d’intégration :
<d-topics-list discourse-url="https://forum.flowster.app" template="complete" top_period="all" category="17" per-page="5"></d-topics-list>

Mais un seul sujet apparaît :

:thinking:

2 « J'aime »