如何让wp_enqueue_scripts加载的样式移至页脚?技术求助
如何将WordPress子主题样式加载到页脚
你当前使用的wp_enqueue_style()函数默认会把样式文件加载在页面头部,因为这个函数本身没有提供直接控制加载到页脚的参数。要实现样式在页脚加载,这里有两种实用的方法供你选择:
方法一:借助wp_enqueue_script()加载样式
虽然这个函数主要用于加载JavaScript,但也可以用来加载CSS文件,并且它支持$in_footer参数来指定加载位置。修改你的代码如下:
// 记得先定义父主题样式的handle,比如下面这行(如果之前没加的话) $parent_style = 'parent-style'; function my_theme_enqueue_styles() { global $parent_style; // 用wp_enqueue_script替代wp_enqueue_style,最后一个参数设为true表示在页脚加载 wp_enqueue_script( 'child-style', get_stylesheet_directory_uri() . '/assets/css/style.min.css', array( $parent_style ), wp_get_theme()->get('Version'), true ); // 手动指定文件类型为CSS,避免浏览器报MIME类型不匹配警告 wp_script_add_data( 'child-style', 'type', 'text/css' ); } add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
方法二:在wp_footer钩子中直接输出样式标签
如果你更偏好原生的样式标签加载方式,可以直接在页脚钩子中输出链接:
function my_theme_enqueue_styles_footer() { $style_url = get_stylesheet_directory_uri() . '/assets/css/style.min.css'; $version = wp_get_theme()->get('Version'); // 注意使用esc_url和esc_attr做安全转义 echo '<link rel="stylesheet" href="' . esc_url( $style_url ) . '?ver=' . esc_attr( $version ) . '">'; } add_action( 'wp_footer', 'my_theme_enqueue_styles_footer' );
重要提醒
把样式放到页脚加载可能会引发**FOUC(无样式内容闪烁)**问题——页面会先显示无样式的内容,等样式加载完成后才会渲染正确样式。如果你的网站重视首屏加载体验,需要权衡是否采用这种方式。
内容的提问来源于stack exchange,提问作者Gustavo Chagas
相关产品推荐
相关产品推荐

