Gunakan filter [sematan] dalam file template

9

WordPress secara otomatis menyematkan video youtube jika saya menggunakan:

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

Ini bagus, tetapi tidak berfungsi jika saya menggunakannya dalam file templat. Saya memiliki bidang khusus tempat admin dapat meletakkan URL ke video YouTube. Saya ingin mendapatkan video di pos tunggal menggunakan kode berikut:

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

Bagaimana saya bisa mengkonversi URL Youtube menjadi URL embed menggunakan fungsi standar WordPress [embed]?

Sjoerd Boerrigter
sumber

Jawaban:

14

Gunakan wp_oembed_get( $url )sebagai gantinya. Pastikan Anda echomemilikinya di file template Anda. Jadi, sesuatu seperti ini:

<?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
sumber
Solusi mudah dan terbaik untuk masalah ini. +1
Sam
10

Biasanya Anda harus menggunakan do_shortcode dalam templat untuk menempatkan kode pendek di luar konten, namun, saya mengalami masalah dengan embedcode pendek khusus dan tidak dapat membuatnya berfungsi seperti itu. Saya menemukan solusi ini yang berfungsi, tetapi mungkin ada cara untuk melakukan ini dengan do_shortcode dan saya telah melewatkan sesuatu.

<?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
sumber
Anda juga dapat melakukan echo do_shortcode ($ shortcode)
keatch
@keatch - sudahkah Anda mencoba ini secara khusus dengan embedkode pendek WP ? seperti yang saya sebutkan, yang spesifik tidak akan bekerja untuk saya, sedangkan kode pendek lainnya biasanya berfungsi. Saya belum melakukan banyak penyelidikan mengapa. Ini juga tidak dengan versi WP terbaru.
Milo
1
Saya tahu ini sudah tua, tetapi hanya untuk menunjukkan bahwa saya masih memiliki masalah yang sama sekarang pada tahun 2013 dengan embedcode pendek tidak berfungsi dalam file templat. Solusi di atas bekerja dengan baik.
Eckstein