我想收拾一下<script>
WordPress生成的标签为HTML5生成更多语义输出。
您已经可以为<style>
将使用此代码的标记附加到style_loader_tag
过滤器:
//clean up the default WordPress style tags
add_filter(\'style_loader_tag\', \'clean_style_tag\');
function clean_style_tag($input) {
preg_match_all("!<link rel=\'stylesheet\'\\s?(id=\'[^\']+\')?\\s+href=\'(.*)\' type=\'text/css\' media=\'(.*)\' />!", $input, $matches);
//only display media if it\'s print
$media = $matches[3][0] === \'print\' ? \' media="print"\' : \'\';
return \'<link rel="stylesheet" href="\' . $matches[2][0] . \'"\' . $media . \'>\' . "\\n";
}
但没有对等的
script_loader_tag
在核心部分。是的
proposed in the past, 但目前我们需要一个变通办法。
我已经开始找了/wp-includes/class.wp-scripts.php
在function do_item( $handle, $group = false )
在保存脚本输出的第79行附近(特别是lines 117-120
), 但我在寻找一个合适的过滤器时遇到了一些困难。
SO网友:kaiser
如果你真的想这样做,那么它应该已经是可能的了。
这个global $wp_scripts
是的实例WP_Scripts
类,它是WP_Dependencies
班
因此,在理论上(未经测试),您应该能够执行以下操作:
function alter_script_tags()
{
echo \'<pre>\';
print $GLOBALS[\'wp_scripts\']->print_html;
echo \'</pre>\';
}
add_action( \'wp_enqueue_scripts\', \'alter_script_tags\', 999999 );
这只是一个粗略的草图,但你应该明白了。