0

我正在为客户端开发一个插件,该插件将允许用户上传视频以轻松上传视频并显示视频以供评论。通过 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(有点预期)

有没有其他人尝试过这个?你能想出其他方法来做到这一点吗?

4

0 回答 0