Використовуйте [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 - ви спеціально пробували це з шорт-кодом WP embed? як я вже згадував, цей конкретний для мене не буде працювати, тоді як інші короткі коди зазвичай роблять. Я не робив багато розслідувань щодо того, чому. Так само не було з останньою версією WP.
Міло

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