有条件地检查主题中是否包含bootstrap.css

时间:2013-06-28 作者:Harish Chouhan

我正在为Bootstrap框架创建一个短代码插件,该插件将与我的主题一起使用。然而,如果用户的主题已经有引导,那么这将被发布到插件中。包括css,有没有办法让我从插件中检查这一点?

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

您可以使用wp_style_is() 为此,请执行以下操作:

$style = \'bootstrap\';
if( ( ! wp_style_is( $style, \'queue\' ) ) && ( ! wp_style_is( $style, \'done\' ) ) ) {
    //queue up your bootstrap
    wp_enqueue_style( $style, $path_to_bootstrap, $deps, $ver, $media );
}
这与@Milo的解决方案有着相同的注意事项——只有在引导程序副本的情况下,它才会起作用。css已注册或排队,句柄为bootstrap.

参考文献wp_style_is()
  • wp_enqueue_style()
  • SO网友:Milo

    没有防弹的方法可以做到这一点,因为主题开发人员可以添加bootstrap.css 文件直接转换为主题文件,或将其置于任意数量的句柄下,或将css文件重命名为其他文件。

    你可以检查一下$wp_styles 全球适用于bootstrap 在句柄或文件名中,但如果bootstrap 恰好位于与引导无关的句柄或文件中。还可以构建引导的自定义版本,因此即使您找到了它,它也可能不包含假定包含的所有样式。

    下面是一个快速查看排队样式的示例:

    function wpa_inspect_styles(){
        global $wp_styles;
        var_dump( $wp_styles );
    }
    add_action( \'wp_enqueue_scripts\', \'wpa_inspect_styles\', 9999 );
    
    在我看来,最好的选择可能是进行一些粗略的检查,并通知用户您可能在其主题中检测到引导,默认情况下将文件排队,并提供一个选项来禁用样式表。

    结束

    相关推荐