如何在帖子中嵌入YouTube视频,而不在末尾添加建议视频?

时间:2014-09-24 作者:Andrew

我已经开始将YouTube视频发布为帖子。我只需复制并粘贴URL,WordPress就会知道如何嵌入它。我喜欢这个工作流,但我不喜欢WordPress生成的嵌入代码。WordPress似乎生成了一个代码,允许建议的视频显示在最后。我希望我的嵌入代码不要在最后显示建议的视频,就像我从YouTube网站生成的一样。有没有办法自定义生成的嵌入代码,或者提供这种行为的插件?

screenshot of YouTube embed

2 个回复
SO网友:Otto

像这样的东西应该可以做到这一点,并强制所有YouTube oembed结果的rel=0。

add_filter(\'oembed_dataparse\',\'youtube_force_rel\',10,3);
function youtube_force_rel($return, $data, $url) {
    if ($data->provider_name == \'YouTube\') {
        return str_replace(\'feature=oembed\', \'feature=oembed&rel=0\', $return);
    } else {
        return $return;
    }
}

SO网友:Robert hue

这是YouTube的短代码。

// youtube shortcode.
function sc_youtube_single( $att, $content = null ) {
    return \'<iframe width="640" height="480" src="\' . do_shortcode( $content ) . \'?rel=0" frameborder="0" allowfullscreen></iframe>\';
}
add_shortcode( \'youtube\', \'sc_youtube_single\' );
您可以像这样在内容中添加视频。

[youtube]http://www.youtube.com/embed/XQu8TTBmGhA[/youtube]
您不需要添加?rel=0 现在是短代码。只需粘贴youtube视频链接。您还可以修改此函数的代码,以指定更多变量,如宽度、高度、自动播放等。

EDIT

我理解这个问题,为此我有另一个代码。现在,您也可以从地址栏发布youtube URL。此函数将从发布的URL中获取视频ID,并将其自动更改为嵌入代码。因此,您的用户不必获取嵌入代码。

// Get YouTube video ID from URL
function youtubeid( $url ) {
  $domain = parse_url( $url, PHP_URL_HOST );
  $url = esc_url( $url );
  if ( $domain == \'www.youtube.com\' || $domain == \'youtube.com\' ) {
    parse_str( parse_url( $url, PHP_URL_QUERY ) );
    $youtubeid = $v;
  } else {
    $youtubeid = \'\';
  }
  return $youtubeid;
}

// youtube shortcode.
function sc_youtube_single( $att, $content = null ) {
    return \'<iframe width="640" height="480" src="http://www.youtube.com/embed/\' . do_shortcode( youtubeid ( $content ) ) . \'?rel=0" frameborder="0" allowfullscreen></iframe>\';
}
add_shortcode( \'youtube\', \'sc_youtube_single\' );

结束

相关推荐

如何通过url在前台帖子中嵌入YouTube视频

我想嵌入视频(&A);通过在我的wordpress网站中输入url获取图像。在WordPress repsitory中有许多通过url嵌入视频的插件,但在我的网站中,我想从前端启用此功能。注册用户可以输入url,此视频将在帖子中显示。我怎样才能做到这一点。