WordPress intègre automatiquement une vidéo youtube si j'utilise:
[embed] http://www.youtube.com/watch?v=Xog1T5dUxcw [/embed ]
C'est génial, mais cela ne fonctionne pas si je l'utilise dans un fichier de modèle. J'ai un champ personnalisé dans lequel l'administrateur peut insérer une URL dans une vidéo YouTube. Je veux obtenir la vidéo dans le post unique en utilisant le code suivant:
<?php
$custom = get_post_custom($post->ID);
$url = $custom['_videoLink'][0];
?>
<div class="video">
[embed]<?php $url; ?>[/embed]
</div>
Comment convertir l'URL de Youtube en URL intégrée à l'aide de la fonction standard de WordPress [embed]?
Utilisez wp_oembed_get( $your_YouTube_url )
à la place. Assurez-vous que vous avez echo
dans votre fichier de modèle. Donc, quelque chose comme ça.
<?php
$your_YouTube_url = 'https://www.youtube.com/watch?v=jofNR_WkoCE';
echo wp_oembed_get( $your_YouTube_url );
?>
Normalement, vous devez utiliser do_shortcode dans un modèle pour placer un shortcode en dehors du contenu. Cependant, j'ai eu des problèmes avec le shortcode intégré en particulier et je ne pouvais pas le faire fonctionner de cette façon. J'ai trouvé cette solution qui fonctionne, mais peut-être y a-t-il moyen de faire cela avec do_shortcode et j'ai raté quelque chose.
<?php
$custom = get_post_custom($post->ID);
$url = $custom['_videoLink'][0];
if($url):
$shortcode = '[embed]'.$url.'[/embed]';
global $wp_embed;
echo $wp_embed->run_shortcode($shortcode);
endif;
?>