我读了WP文件,which pointed to this gist 为IE排队的正确方法是使用$wp_styles
. 我猜这对于脚本也是正确的。
以这些例子为例
Option One - 使用wp_scripts
add_action(\'wp_print_scripts\', function() {
global $wp_scripts;
wp_enqueue_script( \'html5shiv\', \'https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js\', array( \'bootstrap\' ) );
$wp_scripts->add_data( \'html5shiv\', \'conditional\', \'lt IE 9\' );
} );
Option Two - 使用wp_scripts
随着is_IE
add_action(\'wp_print_scripts\', function() {
global $wp_scripts, $is_IE;
if($is_IE) {
wp_enqueue_script( \'html5shiv\', \'https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js\', array( \'bootstrap\' ) );
$wp_scripts->add_data( \'html5shiv\', \'conditional\', \'lt IE 9\' );
}
} );
Option Three - 只要在脑海中回响一下:add_action(\'wp_head\', function(){
echo \'<!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><![endif]-->\' . "\\n";
});
Option Four - 将其排到头部:add_action(\'wp_print_scripts\', function(){
wp_enqueue_script( \'html5shiv\', \'https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js\', array( \'bootstrap\' ) );
});
第二种选择。看起来很酷,因为它在非IE浏览器上看起来更干净。但我不确定它是否真的有任何速度优势,或者单是检查是否会使速度减慢更多。除此之外,我似乎不明白为什么选项1比选项3或4更好。这个问题的原因我使用的是Genesis框架they include HTML5shiv 就像下面的例子,我觉得不太合适:
add_action( \'wp_head\', \'genesis_html5_ie_fix\' );
/**
* Load the html5 shiv for IE8 and below. Can\'t enqueue with IE conditionals.
*/
function genesis_html5_ie_fix() {
if ( ! genesis_html5() )
return;
echo \'<!--[if lt IE 9]><script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->\' . "\\n";
}