WordPress 主题里的 wp_head():少写一行,会连锁坏掉哪些东西
摘要
很多人做 WP 主题,第一次把 header.php 从别人的主题抄过来时,会顺手删掉几行「看着没用的」。其中 wp_head() 是最常被误删的一个,因为它在源码里只输出一个空标签,浏览器里看不出来任何东西。 删掉之后最先坏的是什么 不是
很多人做 WP 主题,第一次把 header.php 从别人的主题抄过来时,会顺手删掉几行「看着没用的」。其中 wp_head() 是最常被误删的一个,因为它在源码里只输出一个空标签,浏览器里看不出来任何东西。
删掉之后最先坏的是什么
不是样式,是插件。WP 的插件绝大多数靠 wp_head 这个钩子往页面里注入内容,包括:
- 统计代码、验证 meta 标签
- SEO 插件输出的 title / description / canonical
- 缓存插件的调试注释和预加载链接
- CDN、图片懒加载的脚本
这些全部失效,而且不报错,你会以为是插件本身不兼容,去插件作者那里开一堆 ticket。
wp_head() 到底放在哪
必须在 </head> 闭合标签之前,且只能出现一次。放在 <body> 里虽然也「能跑」,但校验器会报错,部分插件也会因为找不到节点而失效。
正确的骨架
<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
<meta charset="<?php bloginfo('charset'); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
配套的两个「必须」
body_class() 和 wp_footer() 是同一组的。少了 body_class(),主题的 CSS 条件类(比如首页、单页、登录态)全部失效;少了 wp_footer(),后半段注入的脚本(很多插件的 JS 都挂在 footer)不加载。
这三个函数是 WP 主题的「三件套」,缺任何一个都会出现「装了插件但没反应」的诡异现象。判断方法很简单:看页面源码里有没有插件的注入痕迹,没有就先回去查这三行。
2026年10月20日 14:27
前后30天 · 点日期看归档
9月20日
9月21日
9月22日
9月23日
9月24日
9月25日
9月26日
9月27日
9月28日
9月29日
9月30日
10月1日
10月2日
10月3日
10月4日
10月5日
10月6日
10月7日
10月8日
10月9日
10月10日
10月11日
10月12日
10月13日
10月14日
10月15日
10月16日
10月17日
10月18日
10月19日
10月20日
10月21日
10月22日
10月23日
10月24日
10月25日
10月26日
10月27日
10月28日
10月29日
10月30日
10月31日
11月1日
11月2日
11月3日
11月4日
11月5日
11月6日
11月7日
11月8日
11月9日
11月10日
11月11日
11月12日
11月13日
11月14日
11月15日
11月16日
11月17日
11月18日
11月19日