在页脚中添加代码以在页面顶部放置管理栏似乎非常不直观。即使使用wp\\u footer这个词来反对像wp\\u header这样的东西来添加页眉,也似乎很尴尬。我有什么遗漏吗?我来自Java背景。
为什么要在页脚文件中添加wp_footer(),以便在页面顶部添加一个管理栏?
原因是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()
.
这样做至少有三个很好的理由。
首先,您希望首先加载页面内容,以便访问者有理由留在站点上。通过将不是主要内容的内容全部删除,访问者可以在页面仍在加载时开始阅读。
第二,SEO。如果可能的话,你希望Google找到的第一个内容就是这篇文章。SEO感知主题会在帖子之后放置边栏和其他内容,即使它们会在帖子之前或之前显示。
第三,使用大量Javascript呈现条形图。最佳实践(出于上述原因)是仅在内容完成时呈现Javascript。毕竟,Javascript无法处理尚未加载的DOM对象。因此,所有Javascript都放在页面的末尾,以便文档就绪功能可以在包含在页面中后立即启动。