템플릿 파일에서 [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.