web-dev-qa-db-fra.com

Problèmes liés à l'utilisation de la fonction oembed de WP + Instagram + AJAX

J'utilise un modal pour charger le contenu d'un message via AJAX. Dans le modèle du message, j'utilise wp_oembed_get () pour intégrer différents types de médias (YouTube, Vimeo, Flickr et Instagram). Tout fonctionne, sauf pour Instagram.

Lorsque j'ouvre un article contenant un Instagram, cela se charge très bien. Mais si je ferme le modal et essaie de charger un autre post, l'intégration ne fonctionne pas correctement. La photo/vidéo dans l'incorporation ne se charge pas.

C'est la page: http://staging.smuttynose.com/the-hopper

Si vous ouvrez l'un des messages de "Test Instagram", fermez-le, puis chargez l'autre, vous verrez ce qu'il se passe.

Je suis au bout du rouleau pour comprendre cela!

3
Adam Walter

Instagram a changé son code d'intégration, passant d'une iframe à un paquet de HTML et un script JS. Très inélégant, mais rien ne peut être fait. Bien entendu, cette configuration échoue lorsqu’elle est appelée via AJAX car le fichier JS faisant partie du code HTML ne s’exécute pas. Heureusement, il existe un autre moyen officiel de le faire fonctionner avec AJAX en deux étapes:

  1. Inclure ces scripts dans votre HMTL:

    <script src="//platform.instagram.com/en_US/embeds.js"></script>

  2. Exécute ce JS après avoir chargé le contenu avec AJAX:

    if ( typeof window.instgrm !== 'undefined' ) { window.instgrm.Embeds.process(); }

Qu'est-ce qu'il fait, il cherche Instagram intègre et les charge. Bonne chance!

3
Banago