为什么要在页脚文件中添加wp_footer(),以便在页面顶部添加一个管理栏?

时间:2020-06-09 作者:LeeMatt3000

在页脚中添加代码以在页面顶部放置管理栏似乎非常不直观。即使使用wp\\u footer这个词来反对像wp\\u header这样的东西来添加页眉,也似乎很尴尬。我有什么遗漏吗?我来自Java背景。

2 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

原因是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().

SO网友:Matthew Brown aka Lord Matt

这样做至少有三个很好的理由。

首先,您希望首先加载页面内容,以便访问者有理由留在站点上。通过将不是主要内容的内容全部删除,访问者可以在页面仍在加载时开始阅读。

第二,SEO。如果可能的话,你希望Google找到的第一个内容就是这篇文章。SEO感知主题会在帖子之后放置边栏和其他内容,即使它们会在帖子之前或之前显示。

第三,使用大量Javascript呈现条形图。最佳实践(出于上述原因)是仅在内容完成时呈现Javascript。毕竟,Javascript无法处理尚未加载的DOM对象。因此,所有Javascript都放在页面的末尾,以便文档就绪功能可以在包含在页面中后立即启动。

相关推荐

ADD_TIME_SUPPORT(‘admin-bar’)导致致命错误

我正在努力学习更多关于主题开发的知识,所以我创建了自己的主题,除了添加functions.php 并尝试用一些简单的方法进行更新,如:<?php add_theme_support(\'admin-bar\', array(\'menus\')); ?> 我明白了Server 500 ERROR 我无法访问Wordpress的任何部分,甚至连仪表板都无法访问。但一旦我删除functions.php 和刷新页面我的Wordpress又回来了,工作顺利。有什么神秘的fu