如何检查样式表是否已加载?

时间:2013-11-05 作者:Daniel

我想知道如何检查css文件是否已经加载。例如,我在我的主题字体中有font-awesome.min.css 我还有一个插件,它也使用了很棒的字体。所以,我最终得到了两个font-awesome.min.css 已加载样式表。在我将CSS工作表排队之前,是否有方法检查它是否已经加载。

2 个回复
最合适的回答,由SO网友:gmazzap 整理而成

我有+1 Ravs答案,因为它很好,在大多数情况下应该可以工作,但是它假设您知道第三方主题/插件使用的句柄,这并不总是正确的。

如果所有开发人员对相同的样式/脚本使用相同的句柄,则问题不存在,因为WordPress automatically skip styles and scripts registered with same handle.

但假设您使用以下方式注册css:

wp_enqueue_style(\'font-awesome\', ... );
和另一个插件使用

wp_enqueue_style(\'fontawesome\', ... );
WordPress将加载文件2次。

在大多数情况下,开发人员倾向于只使用css的名称而不进行扩展,但这不是一个规则,也可以是不同的版本,例如。

wp_enqueue_style(\'font-awesome.min\', ... );
另一种方法是查看已注册脚本的文件名,查看全局$wp_styles 包含所有已注册脚本的数组,类似于:

add_action(\'wp_enqueue_scripts\', \'check_font_awesome\', 99999);

function check_font_awesome() {
  global $wp_styles;
  $srcs = array_map(\'basename\', (array) wp_list_pluck($wp_styles->registered, \'src\') );
  if ( in_array(\'font-awesome.css\', $srcs) || in_array(\'font-awesome.min.css\', $srcs)  ) {
    /* echo \'font-awesome.css registered\'; */
  } else {
    wp_enqueue_style(\'font-awesome\', get_template_directory_uri() . \'/font-awesome.css\' );
  }
}

SO网友:Ravinder Kumar

您可以停止加载多字体真棒。最小css:

1) 。使用与插件中相同的句柄,该插件用于排队/注册字体awesome。最小css。(通过这种方式,WordPress不会加载多个font-awesome.min.css文件)

2) 。您还可以使用来检查是否通过wp_style_is()

<?php
add_action(\'wp_enqueue_scripts\',\'ravs_check_FA_status\',999);  // 3rd parameter should be max mean apply this action when all scripts or styles loaded, show we can check easily font-awesome.min.css loaded or not
function ravs_check_FA_status(){
if( wp_style_is( $handle, $list = \'enqueued\' ) ){ // $handle = Name of the style in your plugin
  //code
}else{

//code
}
?>

结束

相关推荐

如何使子主题中的新.css文件覆盖子主题的style中的样式

我想单独做出回应。我的子主题中的css文件,但无法使媒体查询覆盖子主题默认样式中的样式。css。我试过<link rel=\"stylesheet\" href=\"<?php echo get_stylesheet_directory_uri(); ?>/responsive.css\" type=\"text/css\" media=\"screen\"/> 在<?php wp_head(); ?> 代码,这是可行的,但我读到这不是好的做法。我真的不想在样式末尾添加