我正在为客户开发一个插件,允许用户上传视频以轻松上传视频和显示视频以供评论。通过Youtube API,用户将在帖子的评论部分填写视频信息并在我的客户网站上传视频。该插件将同时将视频上传到社区Youtube帐户,并在评论中显示该视频。
Youtube视频作为评论评论元中的网址存储在WordPress网站中。
我成功创建了用于上传Youtube和存储结果URL的系统。
我的问题在于尝试显示视频。我发现WordPress不想这样做。我尝试了四种不同的技术来实现我的结果而没有工作。
尝试1:已处理的短代码
add_filter( 'comment_text', 'modify_comment');
function modify_comment( $text ){
if( $youtube = get_comment_meta( get_comment_ID(), 'youtube', true ) ) {
$youtube = '[video src="http://www.youtube.com/watch?v='.$youtube.'" ]';
$text = do_shortcode($youtube) . '<p>' . $text . '</p>';
}
return $text;
}
输出:可点击的网址
尝试2:普通短码
add_filter( 'comment_text', 'modify_comment');
function modify_comment( $text ){
if( $youtube = get_comment_meta( get_comment_ID(), 'youtube', true ) ) {
$youtube = '[video src="http://www.youtube.com/watch?v='.$youtube.'" ]';
$text = $youtube . '<p>' . $text . '</p>';
}
return $text;
}
输出:将短代码显示为纯文本
尝试3:构建iFrame
add_filter( 'comment_text', 'modify_comment');
function modify_comment( $text ){
if( $youtube = get_comment_meta( get_comment_ID(), 'youtube', true ) ) {
$youtube = '<div><iframe title="YouTube video player" class="youtube-player" type="text/html" width="640"
height="390" src="http://www.youtube.com/watch?v='.$youtube.'" frameborder="0"
allowFullScreen></iframe></div>';
$text = $youtube . $text;
}
return $text;
}
输出:空白框(损坏的iFrame)
尝试4:只是网址
add_filter( 'comment_text', 'modify_comment');
function modify_comment( $text ){
if( $youtube = get_comment_meta( get_comment_ID(), 'youtube', true ) ) {
$youtube = 'http://www.youtube.com/watch?v='.$youtube.';
$text = $youtube . '<p>' . $text . '</p>';
}
return $text;
}
输出:纯文本URL(预期的那种)
有没有其他人尝过这个?你能想到其他任何方法吗?