Video de Wistia mostrando imagen en posts incrustados de Discourse

Hola,
He integrado publicaciones de WordPress en Discourse. En una de las publicaciones, agregué un video de Wistia. Funciona bien en las publicaciones de WP, pero en Discourse solo se muestra la imagen. El video no se muestra y, en su lugar, se carga una imagen.

¿Alguien puede orientarme sobre esto?

1 me gusta

Gracias por preguntar al respecto. Al investigar el problema, me encontré con un problema con la forma en que el plugin de Discourse para WordPress maneja las incrustaciones de YouTube y Vimeo. La solución para ese problema también podría resolver el problema de mostrar videos de Wistia para temas que se publican desde WordPress.

Supongo que estás publicando las publicaciones de WordPress en Discourse con el plugin WP Discourse y que has habilitado la opción “Usar contenido completo de la publicación” que se encuentra en la pestaña de opciones de publicación de WP Discourse. También supongo que estás utilizando el editor de bloques de WordPress y no el editor clásico. Avísame si eso no es correcto.

Si así es como estás publicando las publicaciones de WordPress en Discourse, ¿cómo estás agregando los videos de Wistia a las publicaciones de WordPress? ¿Estás usando el enlace “compartir” o estás usando el código de incrustación del video para agregar los videos? Creo que será posible hacer que esto funcione si se usa el enlace “compartir”, pero no si se usa el código de incrustación.

Para mi propia referencia, el problema con los videos de YouTube y Vimeo está aquí:

Cuando se agregó este código al plugin, los bloques de video de WordPress se nombraron según el proveedor de video. Por ejemplo, core-embed/youtube. WordPress ahora parece usar el nombre core/embed para los bloques de video y especifica el proveedor con el atributo providerNameSlug. Por ejemplo:

[blockName] => core/embed
[attrs] => Array
    (
        [url] => https://scossar3.wistia.com/medias/qtp20hbz4i
        [type] => video
        [providerNameSlug] => wistia-inc
    )

El siguiente cambio en https://github.com/discourse/wp-discourse/blob/main/lib/discourse-publish.php#L284C17-L284C35 soluciona el problema con los videos de YouTube y Vimeo y también permite que los videos de Wistia se publiquen en Discourse:

( 'core-embed/youtube' === $block['blockName'] || 'core-embed/vimeo' === $block['blockName'] || 'core/embed' === $block['blockName'] )

Solo he realizado el cambio en mi sitio de desarrollo local. Lo revisaré un poco más y veré si esta solución se puede agregar al código del plugin WP Discourse.

3 Me gusta

Hola @cyriac15, ¿puedes compartir un ejemplo de este problema en tu Wordpress y Discourse?

Hola @simon .. Gracias por la respuesta…
Sí… estoy publicando las entradas desde WordPress a Discourse con el plugin WP Discourse. Pero no he habilitado la opción “Usar contenido completo de la entrada” ya que estoy usando códigos cortos en el editor de WP.
Actualmente estoy usando el editor clásico de WP…
Estoy usando el código de inserción de Wistia en el editor de WP para agregar videos.

Intenté la solución que mencionaste pero no hizo ningún cambio…

1 me gusta

Hola @angus ..
Estoy publicando una entrada desde Wordpress usando el plugin WP Discourse.
Los códigos de incrustación de Wistia no se muestran en el foro de Discourse. Por favor, encuentra este enlace..

La imagen marcada en la captura de pantalla es un código de incrustación, pero se muestra como una imagen.

Estoy usando enlaces de incrustación en el editor de wp..

Ese es un problema más difícil de resolver. Actualmente, Discourse elimina todos los iframes cuando se muestra una publicación en Discourse después de que un usuario hace clic en el botón “Mostrar publicación completa”. Esto significa que los videos de cualquier fuente no aparecerán en el tema. Sería genial si esto pudiera funcionar. Sé que se ha pedido algunas veces.

La razón por la que esto sucede es porque el botón “Mostrar publicación completa” en una publicación incrustada en Discourse funciona “re-rastreando” la página web incrustada cuando el usuario hace clic en él. El HTML que ves cuando haces clic en ese botón no lo envía el plugin WP Discourse cuando se publica la entrada, es un rastreo nuevo de la página relevante.

El rastreo web siempre es un poco impredecible debido a la gran variedad de estructuras HTML posibles (por ejemplo, hay muchas formas diferentes de mostrar imágenes en HTML). Debido a esto, esta es una característica que se está considerando para una posible mejora. Ver más:

Por lo tanto, actualmente no hay una solución fácil. Puedes intentar bloquear y permitir selectores HTML que utiliza el rastreador, sin embargo, esto es algo complicado de hacer funcionar de la manera que deseas. Ver más:

Una forma más sencilla de abordar esto es ocultar el botón “Mostrar publicación completa” o anularlo para que enlace de nuevo a la publicación original de Wordpress, utilizando un componente de tema personalizado. Cuando un sitio tiene una estructura HTML de publicación relativamente compleja que involucra imágenes, como la tuya, tiendo a aconsejar estas últimas opciones.

1 me gusta