原因是wp_footer()
当引入管理栏时,WordPress是唯一可以将HTML输出到主题中的地方。
主题的前端输出几乎完全由主题决定,但WordPress需要支持主题和插件加载自己的脚本和样式。为了支持此功能,WordPress在版本1.5(2005)中添加了两个功能:wp_head()
和wp_footer()
. 主题作者将这些添加到他们的模板中,以便他们和插件开发人员可以连接到模板中添加脚本和样式。wp_head()
放置在<head>
标签,用于需要加载的脚本,以及wp_footer()
放在结束之前</body>
标签(即在页面底部),用于需要加载的脚本。
管理栏在WordPress 3.1(2011)中引入。它使用的原因wp_footer()
因为在当时,它仍然是唯一一种将管理栏的HTML添加到前端的方法,这种方式与现有主题兼容。这意味着管理栏的HTML输出在页面底部,但CSS用于将其定位在屏幕顶部。
理论上,WordPress可以要求主题开发人员在所有页面的顶部添加一个新的挂钩,并在那里输出管理栏,但这意味着现有的主题都不兼容。
最后,在WordPress 5.2(2019)中引入了一个新功能:wp_body_open()
, 放在最上面<body>
. 这个钩子可以用来输出顶部的管理栏HTML,但由于向后兼容的原因,以及wp_body_open()
远不及wp_footer()
现阶段。
在制定主题时,wp_footer()
不仅仅是管理栏需要。它还需要支持插件在页面底部加载脚本。由于它已经被要求15年了,省略它将阻止许多插件工作,而不仅仅是管理栏。这实际上是它的主要目的,这就是为什么它被称为wp_footer()
, 而不是wp_header()
.