解决 WooCommerce 与 FSE Block Theme 的 4 个 CSS 冲突
在为客户开发 WordPress FSE Block Theme 并集成 WooCommerce 时,遇到 4 个 WooCommerce 静默篡改主题样式的陷阱。每个都很隐蔽,排查耗时。记录根因与解法,帮助同样开发 FSE + WooCommerce 主题的开发者避坑。
TL;DR
- 字号预设覆盖:WooCommerce 注册
small/medium/large/x-large四个预设覆盖 theme.json,用h-1~h-6自定义 slug 规避 - font-size class 连字符:
has-h-1-font-size(48px) vshas-h1-font-size(20px),手写 HTML 必须带连字符 - contrast 颜色反转:
--wp--preset--color--contrast被 WooCommerce 改为浅色(#f8fafc),白色文字完全不可见 - ul.products 伪元素:WooCommerce 注入
::before/::after破坏 CSS Grid 布局,需display:none清除