Intereting Posts
Отображать уведомления об обновлении, такие как «Что нового» Как я могу исправить установку Virtual Multiblog, которая не имеет ошибок, но не отобразит все мои сайты? Сообщите пользователю, что мы хотели бы, чтобы они очистили свой файл cookie. Предоставить рабочую кнопку для очистки файлов cookie для пользователя get_template_part не выводит все данные проблема с циклом Как ограничить количество пользователей ролью Изменение цвета фона с доминантой изображения Остановить переключение плагина Как устранить проблемы с переводом? Как добавить URL-адрес графического объекта в файл шаблона и его содержимое? Преимущества wordpress theme vs wordpress только для бэкэнда Только показывать div на домашней странице / блоге в wordpress / php Настройка настраиваемого блога направляет блог на страницу индекса используя get_template_part () внутри виджета и передающих переменные Как проверить для sanitize_URL?

Отключить плагин от получения стилей из другого плагина

Мой плагин WordPress использует Chosen Select и должен использовать файл css в my-plugin/assets/resources/chosen.min.css .

К сожалению, когда другой плагин также использует Chosen Select, мой плагин имеет тенденцию захватывать стили из другого css-файла.

Например, в настоящее время он получает стили из yith-woocommerce-ajax-search/plugin-fw/assets/css/chosen/chosen.css который yith-woocommerce-ajax-search/plugin-fw/assets/css/chosen/chosen.css все мои собственные стили.

Каков наилучший способ убедиться, что установка Chosen Select (или других распространенных вещей, у которых есть собственный силинг) не получает стилей из других файлов css?

Вот как я регистрирую таблицу стилей.

 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 "Отключить плагин от получения стилей из другого плагина"

На самом деле нет надежного метода для определения таблицы стилей из других плагинов или темы, а затем «отключения их». Вы можете только догадываться, что другие плагины и темы будут использовать тот же самый дескриптор, что и для регистрации таблицы стилей. Однако гораздо проще, если ваш плагин предназначен только для личного использования, тогда вы можете вручную пройти через плагин, получить дескриптор противоречивой таблицы стилей и самостоятельно отменить регистрацию

Вы также можете присвоить вашему действию wp_enqueue_scripts очень низкий приоритет ( очень высокое число ), чтобы загрузить таблицу стилей как можно позже

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

Лучшим способом избежать конфликта CSS / JS между плагинами является размещение в нужном месте.

Я имею в виду, вставлять стиль / скрипт вправо, когда скрипт необходим, а не в регистрации стилей / скриптов.

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

Таким образом, если вам не нужен стиль на определенной странице, вы можете сделать if / else, в зависимости от страницы / сообщения, которая будет отображать стиль / скрипт