Użyj filtra [embed] w plikach szablonów

9

WordPress automatycznie osadza filmy z YouTube'a, jeśli używam:

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

To świetnie, ale nie działa, jeśli użyję go w pliku szablonu. Mam niestandardowe pole, w którym administrator może umieścić adres URL filmu wideo w YouTube. Chcę uzyskać wideo w jednym poście za pomocą następującego kodu:

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

Jak przekonwertować adres URL YouTube na osadzony adres URL przy użyciu standardowej funkcji WordPress [embed]?

Sjoerd Boerrigter
źródło

Odpowiedzi:

14

Użyj wp_oembed_get( $url )zamiast tego. Upewnij się, że echoznajdujesz się w pliku szablonu. Coś takiego:

<?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
źródło
Proste i najlepsze rozwiązanie tego problemu. +1
Sam
10

Zwykle musisz użyć do_shortcode w szablonie, aby umieścić krótki kod poza treścią, jednak miałem problem ze specjalnie osadzonym shortcode i nie mogłem go uruchomić w ten sposób. Znalazłem to rozwiązanie, które działa, ale może jest sposób, aby to zrobić za pomocą do_shortcode i coś mi umknęło.

<?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
źródło
Możesz także wykonać echo do_shortcode ($
shortcode
@keatch - czy próbowałeś tego specjalnie z krótkim kodem WP embed? jak wspomniałem, ten konkretny nie działałby dla mnie, podczas gdy inne krótkie kody zwykle działają. Nie przeprowadziłem wielu badań wyjaśniających, dlaczego. Nie było to również w najnowszej wersji WP.
Milo,
1
Wiem, że to jest stare, ale chcę podkreślić, że nadal mam ten sam problem w 2013 roku, ponieważ krótki kod osadzania nie działa w plikach szablonów. Powyższe rozwiązanie działało jednak świetnie.
Eckstein,