一次以备份为前提、以多语言菜单配置为核心的主题切换实战。
一、为什么要换主题?
我的博客 shuijingwanwq.com 一直使用 Hueman 主题,这是一款经典、稳定、功能丰富的主题,陪我走过了很长一段时间。但随着博客内容的增加和访客设备的变化,我逐渐发现了一些问题。
最关键的数据来自网站统计:超过35%的访客屏幕宽度在1680px以上。而Hueman主题对超宽屏的支持并不理想,内容区域最大宽度有限,导致大量空白边距,阅读体验不够舒适。
另外,WordPress已经进入了块主题(Block Theme)时代,全站编辑(FSE)提供了更灵活、更可视化的定制方式。我希望将博客切换到一款对宽屏更友好、更现代化、且维护更积极的主题上。
经过一番调研,我选择了 Twenty Twenty-Five —— 它是WordPress官方最新默认主题(2025年),专为博客和内容创作优化,原生支持全站编辑,且对宽屏有良好的适配。
二、切换前的准备工作
任何主题切换,第一步必须是 备份。
我使用 UpdraftPlus 插件对网站的文件和数据库进行了完整备份。

除了备份,我还做了几件事:
- 记录旧主题的自定义代码:Hueman的
functions.php中有不少我自己添加的功能性代码,后续需要迁移。 - 截图记录小工具和菜单设置:虽然我决定放弃旧的小工具布局,但菜单结构需要保留。
- 准备新主题的配置思路:明确需要调整的内容宽度、首页展示方式、多语言菜单等。
三、选择Twenty Twenty-Five的考虑
Twenty Twenty-Five 是 WordPress 6.7 及以后版本的默认主题,它具有以下优点:
- 完全支持全站编辑:所有布局调整都可以在站点编辑器中可视化完成。
- 对博客友好:排版精致,阅读体验优秀。
- 宽屏适配良好:可以在样式设置中自由调整内容宽度和宽幅宽度。
- 轻量快速:无多余依赖,性能表现出色。
- 官方长期维护:作为默认主题,更新有保障。
当然,它也有学习成本 —— 对于习惯了经典主题(如Hueman)的用户,块主题的菜单管理、小工具、模板结构都需要重新适应。这也正是这篇博客要记录的内容。
四、关于旧主题自定义代码的后续计划
在Hueman的functions.php中,我添加了以下几段自定义代码(见旧主题文件编辑截图):

这些代码包括:
- 禁用WordPress Emoji功能:移除Emoji的JS/CSS,提升加载速度。
- 为薄内容标签页添加noindex:当某个标签下文章数少于2篇时,自动输出
<meta name="robots" content="noindex, follow">,防止低质量页面被索引。 - 调整标签云显示数量:将标签小工具显示的上限改为300个。
这些功能与主题本身无关,属于站点级功能,因此最好的做法是将其从主题中剥离,放到一个站点专属插件中,或者使用 Code Snippets 插件管理。
我计划后续使用 Code Snippets 插件,将每个功能独立为一个代码片段,并设置为“仅在前端运行”。这样,无论以后换什么主题,这些功能都不会丢失。
注意:Hueman主题自带的
load_template( get_template_directory() . '/functions/init-core.php' );和版本检查代码是主题内部依赖,不可迁移。
五、配置首页显示方式
启用Twenty Twenty-Five后,首页默认可能显示一个静态页面或某种模板,而我需要的是 最新文章列表,并且只显示摘要而非全文。
进入 设置 > 阅读,在“您的主页显示”中选中“您的最新文章”,同时将“对于Feed中的每篇文章”改为“摘要”。

这样首页就显示为文章列表,且每篇文章只展示摘要,符合技术博客的阅读习惯。
六、多语言菜单的配置过程(重点)
我的博客支持中英双语,使用 Polylang免费版 实现。在Hueman(经典主题)中,我可以在 外观 > 菜单 中为每个菜单指定显示语言,非常简单。
但在Twenty Twenty-Five(块主题)中,事情变得复杂了:
- 块主题的菜单显示位置不再由“外观 > 菜单”页面控制,而是由站点编辑器中的“导航”块控制。
- Polylang免费版在块主题下,不会在菜单编辑页面显示“语言分配”下拉框。
- 这意味着:我无法直接告诉Polylang“中文主菜单”和“英文主菜单”分别对应哪种语言。
我评估了几种方案:
- 在站点编辑器中创建两个导航块,分别绑定不同菜单,并尝试用条件显示 —— 但块主题的导航块没有内置“按语言显示”的条件逻辑。
- Conditional Menus插件 —— 但有用户反馈该插件与Polylang存在已知兼容性问题,且无法识别“语言”作为条件,因此没有采用。
- Polylang官方推荐的Site Editor Classic Features插件 —— 可以在块主题中恢复经典小工具,但操作略显繁琐,也没有采用。
最终,我找到了一个轻量级插件:TMS Extensions for Polylang。它提供了一个名为 “Menu by Language” 的块,专门用于在块主题中为每种语言显示不同的导航菜单,且完全免费。
操作步骤:
- 安装并激活 TMS Extensions for Polylang。
- 进入 外观 > 编辑器,编辑 “页眉” 模板。
- 在区块插入器中找到 “Menu by Language” 块,添加到页眉中合适位置。
- 点击该块,在右侧设置面板中,分别为 “中文(中国)” 和 “ENGLISH” 选择对应的菜单(中文主菜单、英文主菜单)。
- 保存模板。

完成以上配置后,前台页眉会根据当前页面语言自动切换菜单。

七、总结
这次主题切换的核心工作可以概括为三件事:
- 备份:使用UpdraftPlus完成全站备份,确保可回退。
- 选主题:根据宽屏访客占比高的特点,选择Twenty Twenty-Five。
- 配置多语言菜单:通过TMS Extensions for Polylang插件,解决了Polylang免费版在块主题下无法为不同语言分配菜单的问题。
这次经历也让我意识到,将功能代码与主题分离(如使用Code Snippets)是值得投入时间去做的事,后续会逐步完善。
发表回复