web-dev-qa-db-fra.com

L'intégration de la vidéo YouTube via une fonction de modèle génère une erreur de stratégie interdomaine iframe

J'utilise Wordpress 3.5 qui prend en charge de manière native l'intégration dans des publications et des pages de nombreux sites, y compris YouTube.

Lorsque j'intègre une vidéo Youtube directement sur un message ou une page (en copiant/collant simplement l'URL de la vidéo), cela fonctionne correctement et aucune erreur de stratégie inter-domaines n'est générée dans Chrome ou Firefox.

Cependant, lorsque j'ajoute l'URL d'une fonction dans un modèle de page personnalisé (en dehors de la boucle principale), que j'ai créée pour un type de publication personnalisé, une erreur est générée.

Voici à quoi ma fonction ressemble:

function my_tour_video()
{
    global $post,
           $wp_embed; 

    $my_tour_video = get_post_meta($post->ID, "_my_tour_video", true);  
    echo $wp_embed->run_shortcode('[embed]' . $my_tour_video . '[/embed]');
}

Dans mon champ personnalisé, j'ai essayé l'URL youtube "incorporer" et également l'URL "regarder" copiée et collée à partir du navigateur.

Vous pouvez essayer cet exemple d’URL: http://www.youtube.com/embed/Y7AvqD2loX4

Erreur dans Chrome ressemble à quelque chose comme:

Tentative JavaScript non sécuritaire d’accès au cadre avec URL http://www.mydomain.com à partir du cadre avec URL http: //www.youtube.com/embed/Y7AvqD2loX4 . Les domaines, protocoles et ports doivent correspondre.

Toute suggestion sur la manière de procéder de la bonne manière serait très utile à ce stade.

1
IntricatePixels

Construire un faux shortcode incorporé et ensuite appeler run_shortcode pour le faire n'a aucun sens. Essayez ceci à la place:

echo $wp_embed->shortcode(array(), $my_tour_video);

Edit: De plus, lorsque j'utilise votre code sur une page de test, en utilisant cette intégration, aucune erreur de ce type ne se produit. Si vous pouvez créer un scénario de test reproductible, vous pourrez le résoudre.

Si vous utilisez l'URL/embed /, cela pourrait en être la cause. Utilisez plutôt l'URL réelle de la vidéo, telle qu'elle apparaît lorsque vous consultez la page vidéo de YouTube. La même URL que vous devriez normalement coller dans le contenu d'un message.

3
Otto