Использовать фильтр [embed] в файлах шаблонов


9

WordPress автоматически встраивает видео YouTube, если я использую:

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

Это здорово, но не работает, если я использую его в файле шаблона. У меня есть настраиваемое поле, где администратор может поместить URL-адрес видео на YouTube. Я хочу получить видео в одном посте, используя следующий код:

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

Как я могу преобразовать URL-адрес Youtube в URL-адрес для встраивания, используя стандартную функцию WordPress [embed]?

Ответы:


14

Используйте wp_oembed_get( $url )вместо этого. Убедитесь, что вы echoэто в своем файле шаблона. Итак, как то так:

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

Простое и лучшее решение этой проблемы. +1
Сэм

10

Обычно вам нужно использовать do_shortcode в шаблоне для размещения шорткода вне контента, однако у меня были проблемы с встраиваемым шорткодом, и я не мог заставить его работать таким образом. Я нашел это решение, которое работает, но, возможно, есть способ сделать это с помощью do_shortcode, и я что-то пропустил.

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

Вы также можете сделать эхо do_shortcode ($ shortcode)
keatch

@keatch - вы пробовали это специально с помощью шорткода WP embed? как я уже говорил, этот конкретный не будет работать для меня, в то время как другие короткие коды обычно работают. Я не провел большого расследования относительно того, почему. Это также не было с самой последней версией WP.
Майло

1
Я знаю, что это старая версия, но я хочу отметить, что у меня все еще осталась та же проблема в 2013 году, когда шорткод встраивания не работает в файлах шаблонов. Вышеупомянутое решение работает отлично, хотя
Экштейн
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.