Use o filtro [incorporar] nos arquivos de modelo

9

O 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 o usar em um arquivo de modelo. Eu tenho um campo personalizado em que o administrador pode colocar um URL em um vídeo do YouTube. Quero colocar o vídeo na postagem única 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 um URL incorporado usando a função padrão [incorporar] do WordPress?

Sjoerd Boerrigter
fonte

Respostas:

14

Use em wp_oembed_get( $url )vez disso. Certifique-se de que echoestá no seu arquivo de modelo. Então, algo como isto:

<?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
fonte
Solução fácil e melhor para este problema. +1
Sam
10

Normalmente, você precisa usar do_shortcode em um modelo para colocar um código curto fora do conteúdo, no entanto, tive problemas com o código curto incorporado especificamente e não consegui fazê-lo funcionar dessa maneira. Encontrei esta solução que funciona, mas talvez haja uma maneira de fazer isso com do_shortcode e 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;
?>
Milo
fonte
Você também pode fazer eco do_shortcode ($ shortcode)
keatch
@ keatch - você já tentou isso especificamente com o embedcódigo de acesso do WP ? como mencionei, esse específico não funcionaria para mim, enquanto outros códigos curtos normalmente funcionam. Eu não fiz muita investigação sobre o porquê. Isso também não aconteceu com a versão mais recente do WP.
Milo
11
Eu sei que isso é antigo, mas apenas para salientar que ainda estou tendo o mesmo problema agora em 2013, com o código de acesso incorporado não funcionando nos arquivos de modelo. A solução acima funcionou muito bem.
Eckstein