Bedingte Überprüfung, ob eine bootstrap.css in einem Design enthalten ist

Ich erstelle ein Shortcode-Plugin für das Bootstrap-Framework, das zu meinem Thema passt. Da dies jedoch für das Plugin freigegeben würde, gibt es eine Möglichkeit für mich, dies über ein Plugin zu überprüfen, wenn das Theme eines Benutzers bereits Bootstrap.css enthält?

Solutions Collecting From Web of "Bedingte Überprüfung, ob eine bootstrap.css in einem Design enthalten ist"

Sie können wp_style_is() dazu verwenden:

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

Das kommt mit den gleichen Vorbehalten wie @ Milos Lösung – es funktioniert nur, wenn die Kopie von bootstrap.css mit einem Handle von bootstrap registriert oder eingereiht wurde.

Verweise

  • wp_style_is()
  • wp_enqueue_style()

Es gibt keine kugelsichere Möglichkeit, dies zu tun, da ein Theme-Entwickler die bootstrap.css Datei direkt zu einer Theme-Datei hinzufügen oder unter einer beliebigen Anzahl von Handles in die Warteschlange stellen oder die CSS-Datei in etwas anderes umbenennen kann.

Sie könnten die $wp_styles global für bootstrap in einem Handle oder Dateinamen überprüfen, aber dies kann fehlschlagen (wie oben erwähnt) oder Ihnen ein falsches positives $wp_styles geben, wenn bootstrap zufällig in einem handle oder einer Datei ist, die nichts mit Ihrem Bootstrap zu tun hat. Es ist auch möglich, benutzerdefinierte Versionen von Bootstrap zu erstellen. Selbst wenn Sie es gefunden haben, enthält es möglicherweise nicht alle Stile, von denen angenommen wird, dass sie enthalten.

Hier ist ein kurzes Beispiel, um in die eingereihten Stile zu schauen:

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

Die beste Option ist meines Erachtens, eine oberflächliche Überprüfung durchzuführen und den Benutzer darüber zu informieren, dass Sie möglicherweise Bootstrap in seinem Design erkannt haben , die Datei standardmäßig in die Warteschlange stellen und eine Option zum Deaktivieren des Stylesheets bereitstellen.