如何移除WordPress站点中脚本与样式的type属性?对应代码位置在哪?
移除WordPress中脚本和样式的type属性的方法
你找不到直接的硬编码位置是因为这些type属性是WordPress核心通过动态函数自动添加的,不是写在某个主题文件或者wp_head()的直接输出里。下面是具体的解决思路和实现方法:
核心原理
WordPress的脚本(wp_enqueue_script)和样式(wp_enqueue_style)输出标签时,会通过核心类(WP_Scripts和WP_Styles)自动添加type属性。我们不需要修改核心文件(这会导致更新后失效),而是通过WordPress的钩子来过滤输出的标签,移除这些属性。
具体实现代码
将以下代码添加到你的主题(或子主题)的functions.php文件中:
移除脚本的type="text/javascript"属性
add_filter( 'script_loader_tag', function( $tag ) { // 移除单引号和双引号格式的type属性 return str_replace( "type='text/javascript' ", '', str_replace( 'type="text/javascript" ', '', $tag ) ); } );
移除样式的type="text/css"属性
add_filter( 'style_loader_tag', function( $tag ) { // 移除单引号和双引号格式的type属性 return str_replace( "type='text/css' ", '', str_replace( 'type="text/css" ', '', $tag ) ); } );
关于核心文件的补充说明
如果好奇这些属性是在哪里生成的,可以查看核心文件:
- 脚本的
type属性来自wp-includes/class.wp-scripts.php中的print_script_tag方法 - 样式的
type属性来自wp-includes/class.wp-styles.php中的print_style_tag方法
但绝对不建议直接修改这些核心文件——WordPress更新时会覆盖这些修改,导致你的定制失效,还可能引发兼容性问题。使用钩子是官方推荐的安全定制方式。
内容的提问来源于stack exchange,提问作者Prasath
相关产品推荐
相关产品推荐

