템플릿 파일에서 [embed] 필터 사용


9

내가 사용하는 경우 WordPress에 YouTube 비디오가 자동으로 포함됩니다.

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

이것은 훌륭하지만 템플릿 파일에서 사용하면 작동하지 않습니다. 관리자가 YouTube 동영상에 URL을 넣을 수있는 맞춤 입력란이 있습니다. 다음 코드를 사용하여 비디오를 단일 게시물로 가져오고 싶습니다.

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

표준 WordPress [embed] 기능을 사용하여 Youtube URL을 포함 URL로 변환하려면 어떻게해야합니까?

답변:


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
Sam

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 버전이 아닙니다.
Milo

1
나는 이것이 오래되었다는 것을 알고 있지만 템플릿 파일에서 포함 단축 코드가 작동하지 않는 2013 년에도 여전히 동일한 문제가 있음을 지적합니다. 위의 솔루션은 훌륭하게 작동했습니다.
Eckstein
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.