Pare o plugin de obter estilos de outro plug-in

Meu plugin WordPress usa Seleção Selecionada e é suposto usar o arquivo css no my-plugin/assets/resources/chosen.min.css .

Infelizmente, quando outro plugin também usa Chosen Select, meu plugin tende a pegar estilos do outro arquivo css.

Por exemplo, atualmente está obtendo estilos de yith-woocommerce-ajax-search/plugin-fw/assets/css/chosen/chosen.css que yith-woocommerce-ajax-search/plugin-fw/assets/css/chosen/chosen.css todo o meu estilo personalizado.

Qual é a melhor maneira de garantir que uma instalação do Chosen Select (ou outras coisas comuns que tenham seu próprio syling) não obtenha estilos de outros arquivos css?

Veja como eu registro a folha de estilos.

 function lsmi_load_admin_script() { wp_register_style( 'chosencss', plugins_url( 'assets/resources/chosen.min.css', __FILE__ ), true, '', 'all' ); wp_enqueue_style( 'chosencss' ); } 

Solutions Collecting From Web of "Pare o plugin de obter estilos de outro plug-in"

Realmente não há um método infalível para detectar uma folha de estilo de outros plugins ou de um tema e depois “desligá-los”. Você só pode adivinhar que outros plugins e temas usarão o mesmo identificador para registrar a folha de estilos. No entanto, é muito mais fácil se o seu plugin for apenas para uso pessoal, então você pode acessar manualmente um plugin, obter o identificador da folha de estilo conflitante e cancelar o registro por conta própria

Você também pode dar a sua ação wp_enqueue_scripts uma prioridade muito baixa ( número muito alto ) para carregar sua folha de estilo o mais tarde possível

 add_action( 'wp_enqueue_scripts', 'lsmi_load_admin_script', PHP_INT_MAX ); function lsmi_load_admin_script() { // Deregister and dequeue other conflicting stylesheets wp_dequeue_style( 'chosencss' ); wp_deregister_style( 'chosencss' ); // Add your own stylesheet wp_register_style( 'chosencss', plugins_url( 'assets/resources/chosen.min.css', __FILE__ ), true, '', 'all' ); wp_enqueue_style( 'chosencss' ); } 

A melhor maneira de evitar o conflito CSS / JS entre os plugins é enqueue no lugar certo.

Quero dizer, enqueue o estilo / script exatamente quando o script for necessário e não no registro dos estilos / scripts.

 function lsmi_load_admin_script() { wp_register_style( 'chosencss', plugins_url( 'assets/resources/chosen.min.css', __FILE__ ), true, '', 'all' ); } add_action( 'wp_enqueue_scripts' , 'lsmi_load_admin_script' ); /* When you really need the style/script - use it */ function use_my_style () { wp_enqueue_style('chosencss'); } 

Desta forma, se você não precisar de um estilo em uma determinada página, você pode fazer um if / else, de acordo com a página / publicação que vai exibir o estilo / script