echo do_shortcode('https://www.youtube.com/watch?v=vZBCTc9zHtI');
Est simplement en train d'imprimer
https://www.youtube.com/watch?v=vZBCTc9zHtI"
sur la page.
Je sais que je peux afficher la vidéo avec HTML avec
<iframe src="http://www.youtube.com/embed/vZBCTc9zHtI" width="560" height="315" frameborder="0" allowfullscreen></iframe>
mais j'essaie de tirer parti des méthodes intégrées de wordpress. Comment puis-je faire cela?
Je pense que c'est ce que vous recherchez:
<?php echo wp_oembed_get('https://www.youtube.com/watch?v=vZBCTc9zHtI'); ?>
Pour plus de détails, consultez cette documentation .
Si vous souhaitez simplement intégrer une vidéo dans la zone de contenu, WordPress le fait de manière assez élégante avec oembeds . Il vous suffit de coller l'URL dans l'éditeur et de sauvegarder le message. Tant que les intégrations sont prises en charge, WordPress fonctionnera de manière magique et formatera votre intégration.
Votre appel à do_shortcode()
n’a pas de sens. Comme indiqué, votre code dit "regardez cette chaîne d'URL youtube et exécutez les codes courts trouvés dans celle-ci".
do_shortcode()
Est utilisé pour imprimer un shortcode. Et vous écrivez l'URL dedans. Aucune utilisation de cela. Essayez de mettre en œuvre
wp_oembed_get( $url, $args )
Cela fonctionnera pour vous. Donc votre code va
wp_oembed_get('https://www.youtube.com/watch?v=vZBCTc9zHtI')
ou si vous voulez spécifier la largeur alors
wp_oembed_get('https://www.youtube.com/watch?v=vZBCTc9zHtI', array('width'=>400))
Cela ne fonctionne pas, car l'utilisation d'une URL youtube dans le contenu n'a rien à voir avec les codes courts. C'est pourquoi cela ne fonctionne pas lorsque vous essayez d'appeler do_shortcode
. En réalité, il envoûte le protocole oEmbed, ce qui est très différent. .
Il existe un shorcode oEmbed et vous pouvez probablement utiliser do_shortcode('[oEmbed youtube.com.....]')
, mais comme d'autres réponses l'ont souligné, il existe une API explicite pour cela et l'utilisation du shortcode est le long chemin à parcourir.
La chose la plus importante à garder à l'esprit dans ce que vous essayez de faire est que oEmbed envoie une demande aux serveurs youtube et attend une réponse, ce qui signifie que sans une certaine mise en cache, ce type de code ralentira la page à chaque chargement.