Cómo incorporar MySite en Wordpress

Sep 30 2020

¿Alguien podría ayudarme a entender cómo depurar esto y qué hacer?

En breve

Creé un proveedor oembed y lo agregué a wordpress. Veo que wordpress obtuvo en respuesta el json correcto. Pero no hay más solicitudes para la imagen en la URL proporcionada.

Todo lo que sé

Básicamente, tengo un sitio de WordPress y quiero incrustar una imagen de otro sitio mío mientras escribo una publicación.

Agregué el

wp_oembed_add_provider( 'https://dynamicallyLoadedSPA.com/*', 'https://laravelBackend.com/oembed/', false );

función en functions.php (en el sitio de wordpress). Y después de eso, ahora, cuando pego un enlace mientras escribo una publicación, ocurre el proceso de incrustación, pero aún no hay imagen ni nada. No sé cómo depurar esto.

Veo en mis registros de nginx

/oembed/?maxwidth=1060&maxheight=1000&url=https://dynamicallyLoadedSPA.com/some-link-with-picture-and-description&dnt=1&format=json

que wordpress hizo una solicitud a ese punto final.

si hago la misma solicitud en el navegador, mi backend de laravel devuelve:

{
    "title": "Sausages",
    "description": "expiration date: 2020.10.01, 10euro",
    "url": "https://dynamicallyLoadedSPA.com/sausages",
    "type": "image",
    "tags": "food",
    "image": "https://img.laravelBackend.com/goods/4289/Untitled-2-04.jpg",
    "code": "<img src='https://img.laravelBackend.com/goods/4289/Untitled-2-04.jpg'>"
}

Pero después de que Woordpress recibe esto, no hay más solicitudes para la imagen real en el

https://img.laravelBackend.com/goods/4289/Untitled-2-04.jpg

punto final.

¿Por qué woordpress no solicita la imagen y la muestra en la interfaz de usuario de la publicación y el editor de publicaciones?

Espero que aparezca una imagen con una descripción cuando pegue un enlace en el editor "gutenberg" de woordpress.

PD. cuando miro el html del bloque visualmente editable en el editor de gutenberg, este es el html generado (todo parece estar en orden allí)

<figure class="wp-block-embed"><div class="wp-block-embed__wrapper">
https://dynamicallyLoadedSPA.com/sausages
</div></figure>

Respuestas

Rup Sep 30 2020 at 06:43

Creo que su implementación de oEmbed es incorrecta. Puede ver en la clase WP-oEmbed que WordPress admite cuatro valores de tipo: foto, video, enlace y rico; mientras que devuelve type = image.

De la sección de especificaciones 2.3.4, parece que la lista de WordPress está completa y la 'imagen' generalmente no es compatible. Posiblemente quiso decir type = photo, pero esos generalmente no están vinculados y tienen propiedades obligatorias de alto y ancho que no está proporcionando.

Entonces creo que tus opciones son:

  • cambie su proveedor oEmbed para devolver un type = rich en su lugar, y genere el HTML para incluir allí
  • Extienda WordPress para que admita type = image: implemente el filtro oembed_dataparse (llamado desde la parte inferior de la función que vinculé arriba), detecte type = image allí y devuelva el HTML generado que desea incluir de los datos oEmbed devueltos.
    Sin embargo, es probable que también tenga que extender Gutenberg para que funcione con el nuevo tipo, y no estoy seguro de cómo hacerlo.