子主题 style.css 里把标题字号改成 28px,前台仍是父主题的 22px,开发者工具里子主题那条规则排在前面,被后面的父主题覆盖。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,子主题用 wp_enqueue_style 加载样式时没声明对父主题的依赖,两条样式表按注册顺序输出,父主题的反而在后面。相同优先级下后加载的胜出,覆盖就失效了。
碰到「子主题样式加载顺序」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。
add_action('wp_enqueue_scripts', function () {
wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css');
wp_enqueue_style('child-style', get_stylesheet_uri(), ['parent-style'], '1.0');
});
权限不要一口气开到最大,先加到够用再往上试,范围小才好收。
具体做法是,先确认父主题样式的 handle 名,在主题源码里搜 wp_enqueue_style 那一行;子主题 enqueue 时把父主题 handle 放进依赖数组,保证父在前子在后;改完强制刷新,看样式表在 head 里的先后顺序。
最后用这个标准收尾,head 里父主题样式排在子主题之前,标题字号变成 28px。
