
文章目录
结论先行
2026 年仍建议:样式与模板用小写名子主题覆盖,业务逻辑写独立插件,禁止直接改父主题。判断做对的标准是:父主题更新后你的改动仍在,且 wp core check 无 modified 提示。
三种改法的失效场景
直接改主题在 2026 年 WordPress 6.7+ 下最危险:父主题通过仪表盘一键更新会覆盖全部文件。子主题仅在父主题启用且模板路径命中时生效,若父主题重构模板名则失效。插件在禁用或优先级冲突时失效,例如两个插件都挂 init 且未用优先级。
常见踩坑:把 CPT 注册写进子主题 functions.php,切换主题即丢失数据表关联。正确做法参考 自定义文章类型与分类法该怎么设计(附常见设计错误) 将结构放进插件。
主题更新后代码丢失
验证丢失的命令:
wp theme list --status=active
wp core check-update
git -C /var/www/html/wp-content/themes/storefront status若直接改主题,更新后 git status 显示 deleted。回退方法:从 UpdraftPlus 备份恢复 themes 目录,或 wp theme install storefront --version=旧版本 --force。
功能该进插件
获取报价
邮箱 + 需求 + 预算区间,24 小时内回复报价。
判定原则:与展示无关、可跨主题复用的都进插件。例如 REST 接口、短代码、定时任务。钩子写法见 WordPress 钩子(Hooks)实战:优先级、移除与常见踩坑。
代码块示例(转义版):
add_action( 'init', function () {
register_post_type( 'book', array(
'public' => true,
'label' => 'Book'
) );
}, 10 );改样式的推荐做法
2026 年块主题用 theme.json 子主题覆盖,经典主题用 style.css 加优先级。文件路径:wp-content/themes/child/style.css,头部声明 Template。
实施步骤

- 备份当前主题与数据库。
- 创建子主题目录并写 style.css 与 functions.php。
- 用 wp_enqueue_scripts 挂子主题样式。
- 迁移模板到子主题目录。
- 业务逻辑抽离为插件。
- 父主题更新后跑 git status 验证。
方案对比与选型建议
| 维度 | 直接改主题 | 子主题 | 插件 |
|---|---|---|---|
| 更新安全 | 丢失 | 保留 | 保留 |
| 适用对象 | 无 | 样式/模板 | 功能/逻辑 |
| 2026 推荐 | 禁止 | 是 | 是 |
明确选型:只改看得到的用 WordPress 主题开发入门教程:2026 服务商对比与决策指南 建立的子主题;改能力的写插件;二者均不碰父主题。
常见问题
子主题 functions.php 会覆盖父主题吗?
不会,它并行加载,父主题先载;需用 add_action 同钩子控制顺序。
块主题还需要子主题吗?
需要,用子主题 theme.json 与模板部件覆盖,避免更新丢改。
动作清单
- 审计现有改法,标记直接改父主题文件。
- 建子主题并迁移样式与模板。
- 抽业务函数到插件并跑自动化测试。
- 更新父主题后执行 git status 验证。
别让一次更新毁掉站点,用子主题与插件隔离改动,才是 2026 年稳妥做法。立即评估你的主题,联系 开发服务。
