Verificação condicional para ver se um bootstrap.css está incluído em um tema

2

Estou criando um plug-in shortcode para a estrutura do Bootstrap que acompanhará meu tema. No entanto, como isso seria liberado para o plug-in, se o tema de um usuário já incluir Bootstrap.css, há uma maneira de verificar isso em um plug-in?

    
por Harish Chouhan 28.06.2013 / 05:03

2 respostas

7

Você pode conseguir usar wp_style_is() para fazer isso:

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

Isto vem com as mesmas advertências que a solução do @ Milo - ele só funcionará se a cópia do bootstrap.css for registrada ou enfileirada com um identificador de bootstrap .

Referências

por Pat J 28.06.2013 / 05:43
4

Não há uma maneira à prova de balas de fazer isso, já que um desenvolvedor de temas pode adicionar o arquivo bootstrap.css diretamente a um arquivo de tema ou enfileirá-lo sob qualquer número de identificadores ou renomear o arquivo css para outra coisa.

Você pode verificar o $wp_styles global para bootstrap em um identificador ou nome de arquivo, mas isso pode falhar (conforme mencionado acima) ou fornecer um falso positivo se bootstrap estiver em um identificador ou arquivo não relacionado a seu bootstrap. Também é possível criar versões personalizadas do bootstrap, portanto, mesmo que você o tenha localizado, ele pode não conter todos os estilos que ele supõe conter.

Veja um exemplo rápido de como visualizar os estilos de enfileiramento:

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

Provavelmente, a melhor opção, na minha opinião, é fazer uma verificação superficial e informar ao usuário que você pode ter detectado o bootstrap em seu tema, enfileirar o arquivo por padrão e fornecer uma opção para desativar a folha de estilo.

    
por Milo 28.06.2013 / 05:36