Use o filtro [embed] nos arquivos de modelo

9

WordPress incorpora automaticamente um vídeo do youtube se eu usar:

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

Isso é ótimo, mas não funciona se eu usá-lo em um arquivo de modelo. Eu tenho um campo personalizado onde o administrador pode colocar um URL em um vídeo do YouTube. Eu quero pegar o vídeo no single-post usando o seguinte código:

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

Como posso converter o URL do YouTube em uma URL incorporada usando a função padrão do WordPress [embed]?

    
por Sjoerd Boerrigter 19.08.2011 / 17:55

2 respostas

13

Use wp_oembed_get( $your_YouTube_url ) . Certifique-se de que você echo em seu arquivo de modelo. Então, algo assim.

<?php
$your_YouTube_url = 'https://www.youtube.com/watch?v=jofNR_WkoCE';
echo wp_oembed_get( $your_YouTube_url );
?>
    
por D3XT3R 10.12.2013 / 20:35
10

Normalmente, você precisa usar o do_shortcode em um modelo para colocar um shortcode fora do conteúdo, no entanto, teve problemas com o shortcode embed especificamente e não poderia fazê-lo funcionar dessa maneira. Eu encontrei esta solução que funciona, mas talvez haja uma maneira de fazer isso com do_shortcode e eu perdi alguma coisa.

<?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;
?>
    
por Milo 19.08.2011 / 18:33