wp-embed.min.js
文件有什么作用?我注意到它已添加到我的博客页面页脚的末尾。如何摆脱它?
工作量
经过一番谷歌搜索后,我发现了Embeds在食典上。为什么WordPress认为我默认情况下想在页面上添加视频等?
环境
WordPress 4.4
#1 楼
我终于可以使用以下方法摆脱它:function my_deregister_scripts(){
wp_deregister_script( 'wp-embed' );
}
add_action( 'wp_footer', 'my_deregister_scripts' );
评论
将其添加到动作“ wp_enqueue_scripts”上似乎也可行。
–andershagbard
16年1月13日在16:09
是的,我将使用wp_enqueue_scripts钩子和wp_dequeue_script()代替wp_deregister_script()
–swissspidy
16年1月17日在20:06
@swissspidy wp_dequeue_script('wp-embed');将无法正常工作-您可以进行测试吗?引擎盖建议有效。
–阿兹
16年5月5日在22:38
在WordPress 4.6下,@ Trix脚本可以正常工作。谢谢!
–塞巴斯蒂安
16年9月6日在9:07
使用此方法不会通过themecheck。
–lowtechsun
17年6月12日在10:28
#2 楼
我到达这个线程时遇到了同样的问题:wp-embed.min.js文件做什么?首先,我可以肯定embed.min.js与嵌入其他提供商(例如Vimeo,YouTube等)的嵌入内容无关。您可以删除embed .min.js以及这些嵌入将继续起作用。
它与嵌入其他人的博客/网站中的WordPress帖子特别相关。在WordPress帖子中嵌入WordPress帖子:太元了!此功能是WordPress 4.4中引入的。
禁用embed.min.js将使该功能无法在您的网站上使用。
您可以轻松地进行测试:将其他人的WordPress帖子的URL粘贴到您自己的帖子中。 WP应该将该URL转换为嵌入式小部件。当您在前端查看帖子时,您会注意到您的标记包含一个blockquote和一个iframe。 blockquote是指向您所嵌入的博客文章的纯文本链接,而iFrame的来源是博客文章的URL,并附加
/embed/
:其嵌入端点。embed.min.js隐藏了blockquote并展示iframe它还可以使iframe更好地发挥作用。
现在,尝试使用其他答案中描述的方法之一从页面中删除embed.min.js脚本。重新加载页面,您会注意到blockquote是可见的,但iframe是隐藏的。
简而言之:如果要将其他人的WordPress帖子嵌入到自己的WordPress帖子中,请保留embed.min。 js一个人。如果您不关心此功能,则可以安全地删除它。
评论
请注意,删除embed.js不足以正确禁用嵌入,并且如果操作不当,甚至可能导致奇怪的行为。要完全禁用这些嵌入,请使用官方推荐的“禁用嵌入”插件。
–swissspidy
18年1月22日在14:09
按预期工作,并在word-press 5.x中进行了解释。
– inrsaurabh
19年3月9日在12:30
令人难以置信的是,wp如何在每个单独的版本和官方主题中添加无用的膨胀。
–迈克尔·罗杰斯(Michael Rogers)
7月20日20:49
@swissspidywho推荐吗?似乎被遗弃了。
–迈克尔·罗杰斯(Michael Rogers)
7月20日20:50
#3 楼
Trix的答案在WordPress4.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 );
评论
使用disable_embeds_init()作为函数名称确实是个坏主意。如果有一天要安装Disable Embeds插件,天空将掉下来。我建议您只安装插件,将其添加到主题的functions.php文件中没有任何好处。如果您坚持要这样做,则应该使用另一个函数名。
–swissspidy
16年1月17日在20:08
感谢@swissspidy的建议,我已经更新了函数的名称
– Nadeem Khan
16年1月18日在11:59
请注意,这不仅会从前端/后端删除JS,还会完全禁用将您的帖子嵌入其他网站的功能,WP Oembed无法正常工作
– Tom J Nowell♦
16年11月4日在19:37
Kinsta上的文章详细介绍了使用过滤器将其删除的这种方法kinsta.com/knowledgebase/disable-embeds-wordpress
–安德鲁·舒尔茨(Andrew Schultz)
19年8月30日在13:47
#4 楼
我认为这部分仍然丢失。wp-embed.min.js文件有什么作用?我注意到它已添加到我的博客页面页脚的末尾。
跟踪该问题的答案。
https://core.trac.wordpress.org/changeset/35708
嵌入:从嵌入式嵌入JS中删除&字符。
较旧版本的WordPress会将那些&字符转换为&,这导致了某些无法正常运行的JS。如果人们正在运行一个较旧的发行版,请不要让他们的生活变得比现在更困难。
它还将尝试嗅探用户代理。
评论
您引用的文本(“从嵌入式JS中删除和字符”等)。是文件的单个提交消息,但未描述脚本的总体用途。我已经提供了自己的答案,希望可以提供更多的启示。
–乔纳森·尼科尔(Jonathan Nicol)
17年11月15日在2:23
评论
这可能与wp作为oEmbed服务器而不是客户端有关我试图将答案添加到问题的第一部分
可以肯定它只是在那儿,以降低您的页面速度。
@MarkKaplun是正确的。 wp-embed.min.js允许您通过oEmbed将来自远程WordPress网站的帖子嵌入到自己的WordPress网站中。