Votre cas d’usage n’est certainement pas pris en charge nativement dans Discourse et nécessiterait un développement personnalisé. Je vous suggère d’envisager le développement d’un plugin ou de faire appel à un consultant pour vous aider à le mettre en œuvre.
J’ajouterais aux dépannages que si Discourse ne parvient pas à analyser le contenu de votre page ou article de blog pour créer un nouveau sujet, l’intégration échouera (sans aucun message d’erreur). Essayez d’intégrer un sujet spécifique en premier, puis explorez les options d’analyse de votre page.
C’est super ! Le seul petit problème que je rencontre est que je ne parviens pas à déterminer comment utiliser le bon sélecteur CSS pour extraire le meta-description afin de l’utiliser comme premier message.
J’ai essayé plusieurs variantes comme celle-ci. Des suggestions ?
Si vous essayez d’extraire le contenu de la balise meta depuis la section head de votre site, je ne pense pas que cela soit possible.
Je continue de regretter que cela ne se contente pas d’afficher une seule boîte pour le lien fourni dans l’incorporation, plutôt que d’effectuer une importation plus élaborée de texte et éventuellement d’images.
Certes, pour des sites avec des données de page ou des mises en page complexes, quelqu’un a dû imaginer un scénario où le sujet servait de placeholder pour des discussions et aussi de moyen de rediriger les personnes vers le site distant contenant l’article ou l’histoire ?
S’il vous plaît ? ![]()
Nous envisageons donc de mettre en œuvre cela sur certains blogs et articles de notre site principal, tout en utilisant le forum. Lors d’une réunion ce matin, mon responsable marketing a déclaré que c’était une mauvaise idée, car chaque publication créée sur le forum apparaîtrait comme du contenu dupliqué par rapport à notre blog, car ils ont le même titre et affichent le même premier paragraphe. Il a illustré cela avec une recherche Google sur l’exemple. Existe-t-il une fonctionnalité intégrée permettant d’indiquer à Google qu’il ne s’agit pas de duplicatas, ou pourriez-vous ajouter une balise noindex à ces publications ?
Hmm, c’est intéressant, car si nous ajoutions noindex, les commentaires ne seraient pas indexés non plus, ce qui n’est pas idéal. Existe-t-il un moyen de dire à Google : « cette partie de la page est un doublon » ?
Nous pourrions l’appliquer à l’OP.
C’était en fait ma préoccupation lors de notre discussion. Je ne veux pas nuire à la valeur SEO du blog, mais je ne veux pas non plus masquer les questions-réponses du forum, car elles sont parfois tout aussi attractives que certains articles de blog. Je ne suis pas sûr de savoir comment indiquer à Google d’indexer cette partie et non cette autre d’un article.
Discourse dispose d’un paramètre de site appelé « embed set canonical url ». Lorsqu’il est activé, l’URL canonique des sujets intégrés est définie sur l’URL du contenu intégré. Cela pourrait-il aider à résoudre le problème de contenu en double ?
Cela semble pouvoir aider à résoudre le problème. Auriez-vous la possibilité de connaître quelqu’un qui utilise cette fonctionnalité, afin que je puisse voir et partager un exemple ?
Une autre option ici consisterait à ajouter « Commentaires sur ______ » au début du titre de la discussion.
C’est un sujet délicat, car je ne peux pas partager de détails concernant les sites de nos clients. Vous trouverez plus d’informations sur ce problème dans ce sujet : Add option to set canonical_url to embed_url. J’ai posé la question dans ce sujet pour voir si quelqu’un souhaite fournir des détails sur la manière dont l’activation de ce paramètre a affecté leur référencement (SEO).
Le simple changement de titre suffit-il ? Le contenu du message serait toujours partagé.
Pour une raison quelconque, je ne peux même pas voir la page, même avec le bloqueur de publicités désactivé ; il est indiqué qu’il doit être désactivé.
Un seul paragraphe de « duplication » ne suffit pas à déclencher des problèmes de contenu dupliqué, selon mon expérience — d’autant que vous avez utilisé une capture d’écran de mon blog ![]()
C’est similaire à citer un paragraphe d’un article au hasard.
J’ai essayé cela aujourd’hui en plaçant l’URL de la page dans une div cachée. Le script a simplement inséré le lien sous forme de texte. Pas de Onebox, hélas. ![]()
J’ai réussi à faire en sorte que la fonction d’intégration récupère mes photos depuis la page. Le problème venait de mon côté : le code utilisait un script JavaScript de préchargement/fondu d’image appelé lazyload. Une fois celui-ci supprimé, la création de sujets a pu afficher n’importe quelle image que j’ai configurée dans la zone de sélecteur de classe. Cependant…
Le sujet est créé et fonctionne correctement pendant quelques minutes. L’image est visible via un clic de zoom. Mais après quelques minutes, lors de l’actualisation, le sujet change et, au lieu de l’image, une ligne de texte indiquant « upload » apparaît à sa place.

Il semblerait que cela soit dû à un échec du téléchargement distant de l’image vers le serveur du forum. Avez-vous des idées sur la raison de cet échec ? De plus, si cela échoue, pourquoi le système ne conserve-t-il pas simplement l’URL d’origine ? Cela semble étrange.
Je dois ajouter que ce n’était pas un cas isolé. Cela s’est produit systématiquement sur tous les sujets contenant initialement l’image (environ 10+ sujets).
[Mise à jour : La solution de contournement a consisté à ajouter mes sites à la liste noire des sites à partir desquels les images ne doivent pas être téléchargées. Ainsi, le HTML les récupère directement depuis le site distant. Cela fonctionne pour moi.]
Peut-on empêcher la création de nouveaux sujets lorsque l’URL change (pour les mises à jour du titre du blog) ?
Oui, mais votre logiciel de blog devra suivre l’identifiant du sujet créé lors du premier appel et le transmettre en tant que paramètre dans les demandes d’intégration suivantes.
Voir « Liens vers des sujets existants » dans le message d’origine.
Je ne parviens pas à intégrer via TypeScript dans Angular. Veuillez m’aider.
let window : any;
window.DiscourseEmbed = { discourseUrl: 'xyz.com',
topicId: 26};
let script = this._renderer2.createElement('script');
script.type = "text/javascript";
script.src = 'window.DiscourseEmbed.discourseUrl '+ 'javascripts/embed.js';
script.async = true;
this._renderer2.appendChild(this._document.body, script);


