Comment intégrer MySite dans Wordpress

Sep 30 2020

Quelqu'un pourrait-il s'il vous plaît m'aider à comprendre comment déboguer cela et que faire?

En bref

J'ai créé un fournisseur oembed et l'ai ajouté à wordpress. Je vois que wordpress a obtenu en réponse le bon json. Mais il n'y a aucune autre demande pour l'image à l'url fournie.

Tout ce que je sais

Donc, fondamentalement, j'ai un site wordpress et je veux intégrer une image d'un autre de mes sites tout en écrivant un article.

J'ai ajouté le

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

fonction dans le functions.php (dans le site wordpress). Et après cela, maintenant, lorsque je colle un lien tout en écrivant un message, le processus d'intégration se produit, mais toujours pas d'image ou quoi que ce soit. Je ne sais pas comment déboguer cela.

Je vois dans mes logs nginx,

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

ce wordpress a fait une demande à ce point final.

si je fais la même demande dans le navigateur, mon backend laravel retourne:

{
    "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'>"
}

Mais après que woordpress ait reçu cela, il n'y a plus de demandes pour l'image réelle au

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

point final.

Pourquoi woordpress ne demande-t-il pas l'image et ne l'affiche-t-elle pas dans l'interface utilisateur de l'éditeur d'articles?

Je m'attends à ce qu'une image avec une description apparaisse lorsque je colle un lien dans l'éditeur woordpress "gutenberg".

ps. quand je regarde le html du bloc visuellement éditable dans l'éditeur gutenberg, c'est le html généré (tout semble y être en ordre)

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

Réponses

Rup Sep 30 2020 at 06:43

Je pense que votre implémentation oEmbed est fausse. Vous pouvez voir dans la classe WP-oEmbed que WordPress prend en charge quatre valeurs de type: photo, vidéo, lien et riche; alors que vous retournez type = image.

D'après la section 2.3.4 des spécifications , il semble que la liste de WordPress est complète et que 'image' n'est généralement pas prise en charge. Vous vouliez peut-être dire type = photo, mais ceux-ci ne sont généralement pas liés et ont des propriétés de hauteur et de largeur obligatoires que vous ne fournissez pas.

Je pense donc que vos options sont:

  • changez votre fournisseur oEmbed pour renvoyer un type = rich à la place, et générez le HTML à inclure
  • étendre WordPress pour prendre en charge type = image: implémentez le filtre oembed_dataparse (appelé à partir du bas de la fonction que j'ai liée ci-dessus), détectez type = image et renvoyez le code HTML que vous souhaitez inclure à partir des données oEmbed renvoyées.
    Cependant, il y a de fortes chances que vous deviez également étendre Gutenberg pour qu'il fonctionne également avec le nouveau type, et je ne sais pas comment le faire.