Embedding a list of Discourse Topics in another site

What could one modify to specify multiple categories?

2 Me gusta

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 Me gusta

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

4 Me gusta

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 Me gusta

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 Me gusta

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

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

7 Me gusta

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

5 Me gusta

¿Alguien ha recibido algún error de “Refused to frame”?

Habilité los temas de incrustación y recibo

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

¿Estás intentando incrustar todo tu foro en otro sitio? Eso no funcionará.

El OP describe cómo incrustar listas de temas en otro sitio, pero no puedes ejecutar Discourse en un iframe por las razones que describes.

3 Me gusta

Solo los temas más recientes. Seguí las instrucciones para habilitar el tema de inserción en la configuración y copié los scripts en el encabezado y el cuerpo del sitio anfitrión. No estoy seguro si el error se debe a que el sitio de desarrollo en el que lo estoy probando no tiene SSL.

3 Me gusta

Esto se debe a la configuración de seguridad de su sitio, no del lado de Discourse.

4 Me gusta

Lo he conseguido. Simplemente no leí las instrucciones con suficiente atención :slight_smile:

4 Me gusta

Así que esto está funcionando muy bien, mi único problema es que Google está indexando la URL del iframe en sí

Por ejemplo, tengo temas de Discourse incrustados en esta página

Google parece indexar la página anterior correctamente… pero también está indexando las siguientes URL, lo cual me gustaría solucionar

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

¿Hay alguna manera de obtener una metaetiqueta noindex en las páginas anteriores? O, mejor aún, ¿colocar esta nueva etiqueta de Google en las páginas anteriores?

5 Me gusta

Interesante, gracias por el consejo @nader.. ¿deberíamos agregar esta nueva etiqueta a <iframe> por defecto @falco, o hacerla una configuración?

4 Me gusta

Esto debería funcionar

6 Me gusta

Solo quería señalar que esto está sirviendo ' noindex, indexifembedded ' a todos los rastreadores, a pesar de que solo Google admite el nuevo indexifembedded.

Esto probablemente debería cambiarse a x-robots-tag: googlebot:noindex, indexifembedded.

O eliminarse por completo, ya que el noindex podría tener consecuencias imprevistas en otros motores de búsqueda.

1 me gusta

Dudo que la palabra adicional sea particularmente perjudicial para otros rastreadores. ¿Tienes alguna evidencia de que este sea el caso, por ejemplo, algún otro rastreador está diciendo a los sitios que no usen indexifembedded?

(La mayoría de las veces, al escribir código como este, tiendes a ignorar cualquier etiqueta HTML que no esperas, esa es una especie de valor predeterminado para HTML).

3 Me gusta

No veo eso, pero en la página de Google dice:

Actualmente, solo Google admite la etiqueta indexifembedded.

Estoy de acuerdo en que ignorarán indexifembedded, pero mi preocupación es que noindex cause problemas de SEO para la página en la que se encuentra.

Así que dejemos que Bing rastree una URL que tenga incrustaciones de temas. Rastrea esa URL y también rastrea la URL incrustada

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

Si lo anterior es noindex, me preocupa que perjudique el SEO de la página que presenta la incrustación del tema.

Todo esto se soluciona usando x-robots-tag: googlebot:noindex, indexifembedded, pero puedo entender por qué Discourse podría no querer favorecer a 1 motor de búsqueda. Espero que se convierta en un estándar, pero por ahora parece que es solo Google.

3 Me gusta

¡Hola! Solo quería preguntar si todavía no hay una forma integrada de hacer que los temas incrustados se abran como target="_blank" en lugar de target="_parent"

3 Me gusta

Solo tengo curiosidad por saber por qué solo puedo obtener 1 tema. ¿Alguien lo sabe?

Aquí está la categoría (que tiene muchos temas): Amazon Specific - eCommerce Sellers Forum

Y el código de inserción:
<d-topics-list discourse-url="https://forum.flowster.app" template="complete" top_period="all" category="17" per-page="5"></d-topics-list>

Pero solo aparece un tema:

:thinking:

2 Me gusta