Verificación condicional para ver si se incluye un bootstrap.css en un tema

2

Estoy creando un complemento de shortcode para el marco de Bootstrap que irá junto con mi tema. Sin embargo, dado que esto se incluiría en el complemento, si el tema de un usuario ya tiene Bootstrap.css incluido, ¿hay alguna forma de que lo compruebe desde un complemento?

    
pregunta Harish Chouhan 28.06.2013 - 05:03

2 respuestas

7

Usted podría poder utilizar wp_style_is() para hacer esto:

$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 );
}

Esto viene con las mismas advertencias que la solución de @ Milo: solo funcionará si la copia de bootstrap.css se registró o se puso en cola con un controlador de bootstrap .

Referencias

respondido por el Pat J 28.06.2013 - 05:43
4

No hay una manera a prueba de balas de hacer esto, ya que un desarrollador de temas podría agregar el archivo bootstrap.css directamente a un archivo de tema, o ponerlo en la cola bajo cualquier número de manejadores, o cambiar el nombre del archivo css a otra cosa.

Puede comprobar $wp_styles global para bootstrap en un identificador o nombre de archivo, pero esto puede fallar (como se indicó anteriormente) o darle un falso positivo si bootstrap está en un identificador o archivo no relacionado con tu bootstrap. También es posible crear versiones personalizadas de bootstrap, por lo que incluso si lo localizaste, es posible que no contenga todos los estilos que se supone que contienen.

Aquí hay un ejemplo rápido de echar un vistazo a los estilos en cola:

function wpa_inspect_styles(){
    global $wp_styles;
    var_dump( $wp_styles );
}
add_action( 'wp_enqueue_scripts', 'wpa_inspect_styles', 9999 );

Probablemente, la mejor opción, en mi opinión, es realizar algunas verificaciones rápidas e informar al usuario de que puede haber detectado bootstrap en su tema, poner en cola el archivo de forma predeterminada y proporcionar una opción para deshabilita la hoja de estilo.

    
respondido por el Milo 28.06.2013 - 05:36

Lea otras preguntas en las etiquetas