我正在为客户端开发一个插件,该插件将允许用户上传视频以轻松上传视频并显示视频以供评论。通过 Youtube API,用户将填写视频信息并将视频上传到我的客户网站的评论部分。该插件将同时将视频上传到社区 Youtube 帐户并在评论中显示视频。
Youtube 视频作为评论元数据中的 URL 存储在 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;
}
输出:可点击的 URL
尝试 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:只是 URL
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(有点预期)
有没有其他人尝试过这个?你能想出其他方法来做到这一点吗?