Wordpress - ставить стиль в очередь после всех других или после определенных стилей - PullRequest
1 голос
/ 10 апреля 2020

Я пишу плагин для Wordpress, который мне нужен, чтобы поставить в очередь файлы стилей в интерфейсе. Но когда я делаю это, некоторые другие плагины, такие как vs_ composer, добавляют свои файлы стилей после моего плагина и переопределяют мои коды. Поэтому я думаю, что есть две возможности справиться с этой ситуацией. Во-первых, нужно создать несколько CSS правил !important, которые, на мой взгляд, не являются профессиональными. Другой вариант - загрузить файлы моего плагина CSS после всех остальных; Но возможно ли это? Я предполагаю, что эта цель не достижима при использовании параметра $deps в wp_enqueue_style, так как он не загружает файлы, если файлы зависимостей не существуют.

1 Ответ

0 голосов
/ 10 апреля 2020

Вы можете поставить в очередь ваши таблицы стилей, подключившись к wp_head, который печатает данные в теге head на передней панели.

function enqueue_styles() {
  wp_enqueue_style( 'frontend-style', plugin_dir_url( __FILE__ ) . 'styles.css' );
}

add_action( 'wp-head', 'enqueue_styles' ); // default priority: 10

Если вам нужно вывести ваш Позже вы можете уменьшить приоритет стилей.

Например,

add_action( 'wp-head', 'enqueue_styles', 20 ); 

В качестве альтернативы вы можете изменить свои селекторы, чтобы они были более точными c, поэтому ваши правила CSS имеют приоритет свыше vs_ composer.

div {}
div.my-class {} /* more specific */
body div.my-class {} /* even more specific */

Специфичность - это средство, с помощью которого браузеры решают, какие значения свойств CSS наиболее актуальны для элемента и, следовательно, , будет применяться. […] Специфичность - это вес, который применяется к данному объявлению CSS, определяемый номером каждого типа селектора в соответствующем селекторе. Когда несколько объявлений имеют одинаковую специфичность, к элементу применяется последнее объявление, найденное в CSS.

- Источник MDN

...