如何使用wp_ins_post()自动嵌入YouTube

时间:2019-04-12 作者:comdex

我使用此代码向Wordpress添加帖子:

$new_post = array(
    \'post_title\' => $title,
    \'post_content\' => "test   https://www.youtube.com/watch?v=4g3e8XwVIYc   https://youtu.be/LPpW_8c5jE4",
    \'post_status\' => \'publish\',
    \'post_author\' => $author,
    \'post_type\' => \'post\'
);
wp_insert_post($new_post, true);
问题是youtube链接不会被嵌入。但是,如果我手动将其发布到WordPress,则链接将自动嵌入。

要让WordPress自动将youtube URL转换为嵌入式视频,我需要做什么?

该网站的另一个答案是使用wp\\u insert\\u post(),但考虑到youtube URL语法多种多样,我如何从帖子内容中提取youtube URL。WP Codex上的嵌入页面表示只需将“视频URL放入内容区域”。我很惊讶在使用wp\\u insert\\u post()时没有自动嵌入所有youtube视频的功能。。。除非我错过了什么?

谢谢

1 个回复
最合适的回答,由SO网友:MikeNGarrett 整理而成

Youtube URL和其他通过名为oEmbed. 您需要使用wp_oembed_get() 获取嵌入内容以使其工作。

在您的情况下,您直接插入内容,所以您可能不想只打电话wp_oembed_get() 今天到此为止。那行不通。最好运行WordPress内置的功能来支持帖子内容。

apply_filters( \'the_content\', $content );
当您输出the_content() 并包括诸如短代码扩展和oembed发现之类的内容。但是,只有当您的内容格式正确时,它才会起作用。您说,“WP Codex上的嵌入页面表示只需将“视频URL放入内容区域”,这是正确的,有一点需要澄清:

确保URL位于其自己的行上,而不是超链接。

插入内容如下所示:

$new_post = array(
    \'post_title\'   => $title,
    \'post_content\' => \'test
    https://www.youtube.com/watch?v=4g3e8XwVIYc
    https://youtu.be/LPpW_8c5jE4\',
    \'post_status\'  => \'publish\',
    \'post_author\'  => $author,
    \'post_type\'    => \'post\',
);
wp_insert_post( $new_post, true );
请注意帖子内容的新行。这将在模板中输出这些youtube URL时,将其转换为适当的嵌入。

相关推荐

如何用缩略图链接到YouTube视频?

我是WordPress的新手,觉得很困惑。我有一个小博客,找不到一种方法来轻松添加一个小网格的YouTube缩略图,链接到这些视频。我看过各种YouTube插件(视频缩略图、YouTube图库等),但它们似乎都专注于为视频创作者提供工具。我只想要一个由3-5个大小相等的单元格组成的简单表格/网格,显示YouTube视频的缩略图和标题,并将图像作为指向所述视频的链接。有这个插件吗?还是我需要自己编写HTML?我要明确的是:我指的不是帖子缩略图,而是实际页面或帖子中的网格或缩略图表