改了样式前台不变,我先查 enqueue
摘要
样式我改了三遍,浏览器硬刷新也没用。看网页源代码才发现,head 里请求的根本不是我改的那个文件。 先看实际发出去的地址 前台右键看源代码,搜主题目录名。常见就两种:链接 404,或者指到父主题、某个插件的 CSS,后面还挂着旧版本号。这时
样式我改了三遍,浏览器硬刷新也没用。看网页源代码才发现,head 里请求的根本不是我改的那个文件。
先看实际发出去的地址
前台右键看源代码,搜主题目录名。常见就两种:链接 404,或者指到父主题、某个插件的 CSS,后面还挂着旧版本号。这时候先别关缓存插件。地址都不对,清缓存只是自我安慰。
样式要挂在 wp_enqueue_scripts 上
写在当前启用主题的 functions.php。用了子主题就只改子主题,别改父主题。
add_action('wp_enqueue_scripts', function () {
$path = get_stylesheet_directory() . '/assets/css/main.css';
wp_enqueue_style(
'my-theme',
get_stylesheet_directory_uri() . '/assets/css/main.css',
array(),
file_exists($path) ? filemtime($path) : null
);
});
第四个参数我用文件修改时间当版本号,query string 一变,浏览器会重新拉。写死 1.0.0 的话,文件明明改了,前台还是旧的。这个坑我不只踩过一次。
wp_enqueue_style 不要裸放在文件顶上。有的主题凑巧能输出,有的时机不对,link 根本不进 head。footer.php 里手写 link 也能看见效果,但和插件去重、按页面加载搅在一起之后,我还是改回 enqueue 了。
文件在磁盘上,请求仍是 404
多半是路径和目录不一致。get_stylesheet_directory_uri() 是当前主题的 URL,不是站点根目录。assets 写成 asset,本地 Windows 不区分大小写,传到 Linux 就 404。我有一次本地好好的,上线整站没样式,查了才看到就差一个 s。
句柄名 my-theme 如果和父主题、插件撞了,后注册的可能被丢掉。源代码里完全没有你的文件名,先把句柄改成一个冷僻点的再试。这点我没在所有热门主题上逐个验证,但官方主题里撞过。
2026年10月21日 10:37
前后30天 · 点日期看归档
9月21日
9月22日
9月23日
9月24日
9月25日
9月26日
9月27日
9月28日
9月29日
9月30日
10月1日
10月2日
10月3日
10月4日
10月5日
10月6日
10月7日
10月8日
10月9日
10月10日
10月11日
10月12日
10月13日
10月14日
10月15日
10月16日
10月17日
10月18日
10月19日
10月20日
10月21日
10月22日
10月23日
10月24日
10月25日
10月26日
10月27日
10月28日
10月29日
10月30日
10月31日
11月1日
11月2日
11月3日
11月4日
11月5日
11月6日
11月7日
11月8日
11月9日
11月10日
11月11日
11月12日
11月13日
11月14日
11月15日
11月16日
11月17日
11月18日
11月19日
11月20日