我正在尝试从模板中使用的内容创建简码,但由于某些原因,它会以src输出形式返回unknown。 这是我要使用的简码:
function video( $atts, $content = null ) {
$link1 = get_post_meta( $post->ID , 'vid' , true );
$search = '#(.*?)(?:href="https?://)?(?:www\.)?(?:youtu\.be/|youtube\.com(?:/embed/|/v/|/watch?.*?v=))([\w\-]{10,12}).*#x';
$replace = 'http://www.youtube.com/embed/$2';
$link2 = preg_replace($search,$replace,$link1);
$link3 = '<iframe width="560" height="315" src="'.$link2.'" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>';
$link4 = preg_match('~iframe.*src="([^"]*)"~', $link3, $result);
$link5 = $result[1];
$output .= '<div id="videox" style="z-index:102">';
$output .= '<div class="video" style="margin-top: 0px; z-index:102; margin-bottom: 0px;">';
$output .= '<iframe width="560" height="315" src="';
$output .= $link5;
$output .= '" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>';
$output .= '</div>';
$output .= '</div>';
return $output;
}
add_shortcode( 'video', 'video' );
结果:“ src输出为空”
更新:
$link1 = get_post_meta( $post->ID , 'vid' , true );
可以
$link1 = '<iframe width="560" height="315" src="https://www.youtube.com/embed/videoid" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>';
或
$link1 = 'https://www.youtube.com/watch?v=videoid';
因此,我不得不再次制作iframe。
答案 0 :(得分:0)
我解决了。
$url1 = get_post_meta(get_the_id(), 'video_play', true);