我试图将selectivizr包括在内。js内部条件注释。我做错了什么?
<!DOCTYPE html>
<html class="no-js" <?php language_attributes(); ?>>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title><?php wp_title(\'|\', true, \'right\'); ?></title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<?php wp_head(); ?>
<!--[if (gte IE 6)&(lte IE 8)]>
<?php
function blarg(){
wp_enqueue_script(\'selectivizr\', get_template_directory_uri() . \'assets/js/vendor/selectivizr.js\');
}
add_action(\'wp_enqueue_scripts\', \'blarg\', 101);
?>
<![endif]-->
<link rel="alternate" type="application/rss+xml" title="<?php echo get_bloginfo(\'name\'); ?> Feed" href="<?php echo esc_url(get_feed_link()); ?>">
</head>
注释之间没有显示任何内容。我使用的是根主题。他们有一个脚本。其他脚本排队的php。如果我把
wp_enqueue_script()
在那个文件中它可以工作,但我不能做条件注释。
更新时间:
好的,真正的挑战似乎是在条件注释(或任何其他特定的HTML)中获取脚本仍然会使用排队系统。最好的方法是什么?还是有办法?
最合适的回答,由SO网友:Pieter Goosen 整理而成
改变
<!--[if (gte IE 6)&(lte IE 8)]>
<?php
function blarg(){
wp_enqueue_script(\'selectivizr\', get_template_directory_uri() . \'assets/js/vendor/selectivizr.js\');
}
add_action(\'wp_enqueue_scripts\', \'blarg\', 101);
?>
<![endif]-->
至
<!--[if (gte IE 6)&(lte IE 8)]>
<script src="<?php echo get_template_directory_uri(); ?>/assets/js/vendor/selectivizr.js" type="text/javascript"></script>
<![endif]-->
wp_enqueue_script()
应仅用于
functions.php
文件
SO网友:Jack
就我个人而言,我不会使用wp_enqueue_scripts
除非你在函数中。php文件。
如果希望在某个页面上专门调用此脚本,可以使用is_page()
作用然后,为了检测浏览器并有条件地调用函数,我们将使用全局变量$_SERVER[\'HTTP_USER_AGENT\']
.
function blarg(){
if (is_page( \'Page_name\' )){
if (preg_match(\'/(?i)msie [6-8]/\',$_SERVER[\'HTTP_USER_AGENT\'])){
wp_enqueue_script(\'selectivizr\', get_template_directory_uri() . \'assets/js/vendor/selectivizr.js\');
}
}
}
add_action(\'wp_enqueue_scripts\', \'blarg\');
SO网友:David
您应该避免将脚本直接添加到模板中,并将它们从主题函数中排队。php或插件或任何存储逻辑的地方。
在这种情况下,您可以在blarg函数中编写如下内容:
wp_enqueue_script(\'selectivizr\', get_template_directory_uri() . \'assets/js/vendor/selectivizr.js\', array(), \'1.0\', false);
wp_script_add_data( \'selectivizr\', \'conditional\', \'lte IE 8\' );
通过使用
wp_script_add_data
函数您可以选择脚本是立即运行,还是与页面加载异步,还是延迟到最后(相当于将脚本放在页脚中),最重要的是,您可以围绕它包装条件代码。
看见https://developer.wordpress.org/reference/functions/wp_script_add_data/