小工具与侧边栏
页面边上那块地,别浪费也别堆满
侧边栏是 WordPress 的老功能,也是新手最容易搞混的地方:经典主题在「外观 → 小工具」里拖,区块主题却在「外观 → 编辑器」里放区块,两边数据不互通。这篇讲清两套体系怎么分辨、常用小工具怎么选、侧边栏在代码里怎么注册,以及切换主题后小工具消失的补救办法。
先分清你在哪套体系里
拖拽小工具,还是插区块
WordPress 5.8 起小工具支持区块,5.9 起区块主题用模板部件取代小工具区。同一个后台,两种操作方式同时存在,这是混乱的根源。
经典主题:外观 → 小工具
左侧能看到「页脚 1」「侧边栏」「博客侧边栏」等由主题注册的位置,右边是可用小工具列表。拖进去即可,还能选「在所有页面显示」或只在特定页面显示(部分主题支持)。数据存在 wp_options 的 sidebars_widgets 与 widget_* 里。
区块主题:外观 → 编辑器 → 模板部件
没有「小工具」菜单,取而代之的是模板部件(Template Parts),比如 header、footer、sidebar。点进去就是区块画布,用「小工具组」区块或直接放导航、最新文章、搜索区块。改的是模板文件,存进数据库的 wp_template_part 记录。
分辨方法:左侧菜单有「外观 → 小工具」就是经典模式;只有「外观 → 编辑器」就是区块模式。也有主题两种都支持,比如 Blocksy 和 Astra 的部分版本,这时优先用主题文档里推荐的那一套,混着改会出现”改了没反应”。
常用小工具怎么选
八个小工具,三种用途
侧边栏不是公告板集合。每个位置放什么,取决于访客在这里想干什么。
| 小工具 / 区块 | 用途 | 建议位置 | 注意 |
|---|---|---|---|
| 搜索 | 站内检索 | 侧边栏顶部 | 商品多的站建议换成带筛选的搜索 |
| 导航菜单 | 栏目快捷入口 | 侧边栏或页脚 | 与主导航重复太多会分散点击 |
| 最新文章 | 内容更新提示 | 博客侧边栏 | 条数控制在 5 条内 |
| 分类目录 | 归档入口 | 博客侧边栏 | 开启计数会暴露内容量少 |
| 标签云 | 长尾词索引 | 博客侧边栏底部 | 标签超过 30 个会显得杂乱 |
| 文本 / 自定义 HTML | 表单、地图、广告位 | 任意 | 粘代码前先确认允许的标签 |
| 图片 | 资质证书、展会照片 | 侧边栏或页脚 | 设成固定宽度,否则撑破容器 |
| 小工具组 | 把多个区块打包 | 页脚多栏 | 只在该区块内统一间距与背景 |
B2B 站的侧边栏,投入产出最高的是三样:一个带产品分类的导航、一个”获取报价”的表单或按钮、一个资质与认证的图片组。新闻列表页再加个最新文章就够。标签云和日历对工业品站基本无用,反而拉长页面。
侧边栏是怎么被”注册”出来的
改主题时绕不开的两行代码
后台那个位置名称不是天生就有,是主题用函数注册的。理解这一点,很多”为什么没有侧边栏”的问题就解开了。
注册位置
在 functions.php 里调用 register_sidebar(),传 name、id、before_widget、after_widget、before_title、after_title 六个参数。id 建议用小写加下划线,比如 shop_sidebar。注册几个,后台就出现几个可拖区域。
模板里输出
在 sidebar.php 或模板文件中先判断 is_active_sidebar( ‘shop_sidebar’ ),再调 dynamic_sidebar( ‘shop_sidebar’ )。少了判断,没放小工具时页面会留一块空白,布局直接塌。
用子主题改,不动父主题
- 父主题更新会覆盖修改,必须走子主题
- 子主题只需 style.css 头信息加 functions.php
- 注册新侧边栏时优先级设 20,避免父主题覆盖
- 模板文件同名即覆盖,改坏了删掉就恢复
页脚多栏的常见做法
- 注册 footer_1 到 footer_4 四个位置,对应四栏
- 或者只注册一个 footer,用「小工具组」分成三列
- 移动端四栏会堆叠,建议 2×2 或直接单列
- 页脚底部单独留一条放版权与备案号
加一个询盘表单到侧边栏
从粘代码到验证,五步
拿到表单短代码
Contact Form 7 或 WPForms 建好表单后,会给你一段形如 [contact-form-7 id=”123″] 的短代码。先复制下来。
选对容器
经典主题用「文本」小工具(支持短代码),别用「自定义 HTML」,后者在某些主题里不解析短代码。区块主题用「短代码」区块。
控制宽度与留白
侧边栏通常 300 像素宽,表单输入框设 100% 宽,按钮别设固定宽度。上下留 16 像素间距,否则紧贴上面的内容。
清缓存后实测
提交一条测试询盘,确认能收到邮件、后台有记录、跳转提示正常。移动端再看一次,输入框获得焦点时页面不应被键盘顶飞。
侧边栏内容多了会影响首屏渲染,尤其是嵌了 iframe 地图或第三方脚本的情况。页面缓存插件一般能缓解,但更好的做法是把重的东西放页脚,侧边栏只留轻量内容,具体见 缓存加速插件 的配置建议。
小工具不见了、不显示
三种情况,三种解法
换主题后全空了
旧主题注册的位置 id 与新主题不同,sidebars_widgets 里的数据还在,但对不上号。切回旧主题能看到全部内容。补救:切回旧主题,把每个小工具里的内容复制出来,在新主题里重建。
放了但前台没有
先确认当前页面模板是否包含侧边栏——很多落地页、全宽模板本身不输出 sidebar。再看主题设置里是否有”侧边栏位置:左 / 右 / 无”的开关。最后清缓存。
手机上侧边栏跑到内容下面
这是响应式设计的正常行为,多数主题在 768 像素以下把侧边栏堆到正文后。想彻底隐藏,用主题的移动端选项,或在子主题 CSS 里对该断点设 display:none。
还有一类”消失”是权限造成的:管理员能看到,编辑看不到。检查角色的 edit_theme_options 权限,具体分配方式见 用户角色与权限管理。如果要改的是侧边栏结构本身而不只是内容,那属于主题层面的事,参考 主题定制开发。
小工具与侧边栏常见问题
五个实际场景
本身不影响。搜索引擎看的是内容质量与结构,侧边栏重复出现在全站,权重会被稀释但不构成惩罚。真正的问题是它挤占正文宽度、在移动端把内容推得很远,影响阅读体验,间接影响停留时间。
原生只按位置区分,不按页面区分。需要按页面区分要用插件(如 Widget Options),或在子主题里用条件判断 is_page() / is_single() 输出不同的小工具区。后者更干净,但要写代码。
不会。小工具内容存在数据库,主题更新只换模板文件。会丢的是直接写在模板文件里的内容。所以能在后台填的,尽量不要写进 PHP。
能。WordPress 提供「小工具组」区块,可以在模板部件里放传统小工具。但不建议混用,一套体系维护起来更省事,团队交接也不容易出错。
可以,取决于主题是否提供选项。多数商业主题在自定义器里有「侧边栏宽度」「布局:左 / 右 / 无」的设置。没有的话需要在子主题 CSS 里改栅格比例,注意同步改内容区的宽度计算。