我想知道如何检查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
}
?>
结束