web-dev-qa-db-fra.com

Utiliser le filtre [embed] dans les fichiers modèles

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]?

9
Sjoerd Boerrigter

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 );
?>
13
D3XT3R

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;
?>
10
Milo