Incrustar una lista de temas de Discourse en otro sitio

¿Qué se podría modificar para especificar múltiples categorías?

2 Me gusta

¿Debería esperar que esto funcione cuando el “otro sitio” se ejecuta localmente en http://localhost:8000 y el sitio de Discourse no es local, sino que está en un subdominio https? ¿O el “otro sitio” también necesitaría estar en un dominio “real”?

El archivo de script parece cargarse correctamente y no veo errores en la consola de JS. El “otro sitio” es un sitio Gatsby/React; estoy agregando el elemento <d-topics-list> una vez que la página se renderiza en el navegador mediante useEffect, y me parece correcto en el DOM en vivo (ver captura de pantalla)…

Screen Shot 2021-05-19 at 9.21.08 AM

2 Me gusta

Cambiar de https a http suele causar problemas, pero puedes confirmarlo abriendo la consola de tu navegador \u003ckbd\u003eF12\u003c/kbd\u003e.

4 Me gusta

¡Aja! Parece que mi problema es que React está interfiriendo con el DOM del lado del cliente, restableciéndolo para que coincida con el DOM renderizado en el servidor (con el elemento <d-topics-list> sin procesar) inmediatamente después de que el script embed-topics.js inserta el iframe.

5 Me gusta

¿Alguien sabe de qué se trata este error??

Última versión de Discourse
Último navegador Chrome

Se ha rechazado incrustar ‘https://vapingcommunity.co.uk/’ porque un ancestro viola la siguiente directiva de Política de Seguridad de Contenidos: “frame-ancestors ‘self’”.

3 Me gusta

Lo más probable es que esté relacionado con este cambio: (cc @falco)

¿Tienes tu sitio principal registrado en Administración > Personalizar > Incrustación?

7 Me gusta

¡Eureka! No había visto ese cambio, todo funciona perfectamente de nuevo, ¡muchas gracias :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