Şablon dosyalarında [yerleştir] filtresini kullan


9

Eğer kullanırsam WordPress bir youtube videosunu otomatik olarak gömer:

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

Bu harika, ancak bir şablon dosyasında kullanırsam çalışmaz. Yöneticinin bir YouTube videosuna URL koyabileceği özel bir alanım var. Aşağıdaki kodu kullanarak tek yazı video almak istiyorum:

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

Standart WordPress [embed] işlevini kullanarak Youtube URL'sini gömme URL'sine nasıl dönüştürebilirim?

Yanıtlar:


14

wp_oembed_get( $url )Bunun yerine kullanın . echoŞablon dosyanızda olduğundan emin olun . Yani, böyle bir şey:

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

Bu sorun için kolay ve en iyi çözüm. +1
Sam

10

Normalde , içeriğin dışına bir kısa kod yerleştirmek için bir şablonda do_shortcode kullanmanız gerekir , ancak, gömme kısa koduyla ilgili sorun yaşadım ve bu şekilde çalışmasını sağlayamadım. İşe yarayan bu çözümü buldum, ancak belki bunu do_shortcode ile yapmanın bir yolu var ve bir şey kaçırdım.

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

Ayrıca ec_s do_shortcode ($ shortcode)
keatch

@keatch - özellikle WP'nin kısa koduyla denediniz embedmi? bahsettiğim gibi, bu özel olan benim için işe yaramazken, diğer kısa kodlar normalde işe yarar. Neden olduğu hakkında fazla araştırma yapmadım. Bu aynı zamanda en son WP sürümünde değildi.
Milo

1
Bu eski olduğunu biliyorum, ama sadece işaret etmek için hala aynı sorunu 2013 yılında gömme kısa kod şablon dosyaları çalışmıyor. Yukarıdaki çözüm olsa harika çalıştı.
Eckstein
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.