Utiliser le filtre [incorporé] dans les fichiers de modèle

9

WordPress intègre automatiquement une vidéo YouTube si j'utilise:

[embed] http://www.youtube.com/watch?v=Xog1T5dUxcw [/embed ]

C'est très bien, mais cela ne fonctionne pas si je l'utilise dans un fichier modèle. J'ai un champ personnalisé où l'administrateur peut mettre une URL vers une vidéo YouTube. Je souhaite obtenir la vidéo dans le message unique à l'aide du code suivant:

<?php
  $custom = get_post_custom($post->ID);
  $url = $custom['_videoLink'][0];
?>
<div class="video">
  [embed]<?php $url; ?>[/embed]
</div>

Comment puis-je convertir l'URL Youtube en URL intégrée à l'aide de la fonction standard de WordPress [incorporer]?

Sjoerd Boerrigter
la source

Réponses:

14

Utilisez wp_oembed_get( $url )plutôt. Assurez-vous de l' echoavoir dans votre fichier modèle. Donc, quelque chose comme ça:

<?php
// tot necessary to set this but good if $url is coming from a function
$url = 'https://www.youtube.com/watch?v=jofNR_WkoCE';

// echo the function in your template to render the video
echo wp_oembed_get( $url );
?>
D3XT3R
la source
Solution simple et optimale pour ce problème. +1
Sam
10

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é spécifiquement et je ne pouvais pas le faire fonctionner de cette façon. J'ai trouvé cette solution qui fonctionne, mais il y a peut-être un moyen de le faire 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;
?>
Milo
la source
Vous pouvez aussi faire echo do_shortcode ($ shortcode)
keatch
@keatch - avez-vous essayé cela spécifiquement avec le embedshortcode de WP ? comme je l'ai mentionné, celui-ci ne fonctionnerait pas pour moi, alors que d'autres codes courts le font normalement. Je n'ai pas fait beaucoup d'enquête pour savoir pourquoi. Ce n'était pas non plus le cas avec la version WP la plus récente.
Milo
1
Je sais que c'est vieux, mais pour souligner que j'ai toujours le même problème maintenant en 2013 avec le shortcode intégré ne fonctionnant pas dans les fichiers de modèle. La solution ci-dessus a très bien fonctionné.
Eckstein