wp-embed.min.js在WordPress 4.4中做什么?


52

  1. wp-embed.min.js文件做什么?我注意到它已添加到我的博客页面页脚的末尾。
  2. 我该如何摆脱呢?

努力

经过一番谷歌搜索后,我在法典上发现了Embeds。WordPress为什么认为默认情况下我想向页面添加视频等?

环境

WordPress 4.4


1
这与作为嵌入式服务器而非客户端的wp有关的可能性
Mark Kaplun

我试图将答案添加到问题的第一部分
prosti

11
可以肯定的是,它只是在拖慢页面速度。
乔什·哈布达斯

@MarkKaplun是正确的。wp-embed.min.js允许您通过oEmbed将来自远程WordPress网站的帖子嵌入到自己的WordPress网站中。
乔纳森·尼科尔

Answers:


61

我终于可以用这个摆脱它:

function my_deregister_scripts(){
  wp_deregister_script( 'wp-embed' );
}
add_action( 'wp_footer', 'my_deregister_scripts' );

4
将其添加到动作“ wp_enqueue_scripts”上似乎也可行。
andershagbard

7
是的,我会使用wp_enqueue_scripts挂钩,wp_dequeue_script()而不是wp_deregister_script()
swissspidy

@swissspidy wp_dequeue_script( 'wp-embed' );无法使用-您可以进行测试吗?引擎盖建议有效。
阿齐兹

在WordPress 4.6下,@ Trix脚本可以正常工作。谢谢!
塞巴斯蒂安

1
使用此方法不会通过themecheck
lowtechsun

20

我到达这个线程时遇到了同样的问题:wp-embed.min.js文件做什么?当前的答案都不能准确地解决这个问题。

首先,我非常确定embed.min.js与嵌入来自其他提供商(Vimeo,YouTube等)的oEmbed内容无关。您可以删除embed.min.js,这些嵌入将继续起作用。

它特别涉及嵌入 来自其他人的博客/网站的WordPress帖子。在WordPress帖子中嵌入WordPress帖子:太元了!此功能是WordPress 4.4中引入的

禁用embed.min.js将会阻止该功能在您的网站上正常工作。

您可以轻松地进行测试:将其他人的WordPress帖子的URL粘贴到您自己的帖子中。WP应该将该URL转换为嵌入式小部件。当您在前端查看帖子时,您会注意到您的标记包含一个blockquote和一个iframe。blockquote是指向您嵌入的博客文章的纯文本链接,而iFrame的来源是博客文章的URL,并/embed/附加了:其oEmbed端点。

embed.min.js隐藏块引用并显示iframe。它还可以使iframe发挥更好的效果。

现在,尝试使用其他答案中描述的方法之一从页面中删除embed.min.js脚本。重新加载页面,您会发现blockquote可见,但iframe隐藏。

简而言之:如果您想将其他人的WordPress帖子嵌入到自己的WordPress帖子中,请不要使用embed.min.js。如果您不关心此功能,则可以安全地删除它。


3
请注意,删除embed.js操作不足以正确禁用嵌入,如果操作不当,甚至可能导致奇怪的行为。要完全禁用这些嵌入,请使用官方推荐的“ 禁用嵌入”插件。
swissspidy

按预期工作,并在word-press 5.x中进行了解释。
inrsaurabh

8

Trix的答案在WordPress上对我不起作用4.4.1,但是我在Disable Embeds WordPress插件的代码中找到了一个解决方案。在主题functions.php文件中添加以下代码(已修改),以将其wp-embed.min.js从前端完全删除:

add_action( 'init', function() {

    // Remove the REST API endpoint.
    remove_action('rest_api_init', 'wp_oembed_register_route');

    // Turn off oEmbed auto discovery.
    // Don't filter oEmbed results.
    remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10);

    // Remove oEmbed discovery links.
    remove_action('wp_head', 'wp_oembed_add_discovery_links');

    // Remove oEmbed-specific JavaScript from the front-end and back-end.
    remove_action('wp_head', 'wp_oembed_add_host_js');
}, PHP_INT_MAX - 1 );

3
使用disable_embeds_init()作为函数名是一个非常糟糕的主意。如果有一天要安装Disable Embeds插件,天空将掉下来。我建议您只安装插件,将其添加到主题的functions.php文件中没有任何好处。如果您坚持要这样做,则应该使用另一个函数名。
swissspidy

感谢您的建议@swissspidy,我已经更新了函数的名称
纳迪姆·汗

2
请注意,这不仅会从前端/后端中删除JS,还将完全禁用将您的帖子嵌入另一个网站的功能,WP Oembed将无法工作
Tom J Nowell

关于Kinsta的文章详细介绍了使用过滤器将其删除的这种方法kinsta.com/knowledgebase/disable-embeds-wordpress
Andrew Schultz

4

我认为这部分仍然缺失。

wp-embed.min.js文件有什么作用?我注意到它已添加到我的博客页面页脚的末尾。

这个问题的答案在轨道上。 https://core.trac.wordpress.org/changeset/35708

嵌入:从嵌入式嵌入JS中删除&字符。

较旧版本的WordPress会将那些&字符转换为&,这导致了一些无法正常运行的JS。如果人们正在运行一个较旧的版本,请不要让他们的生活变得比现在更艰难。

它还将尝试嗅探用户代理。


2
您引用的文本(“从嵌入式JS中删除和字符”等)。是文件的单个提交消息,但未描述脚本的总体用途。我已经提供了自己的答案,希望可以提供更多的启示。
乔纳森·尼科尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.