wp_dequeue_style не работает

16 сент. 2015 г., 20:23:02
Просмотры: 13.6K
Голосов: 11

Я пытаюсь убрать шрифт, который подключает плагин на фронтенде, так как я уже подключаю его сам и мне не нужны все стили этого шрифта.

Вот мой код:

// Удаляем Open Sans
function custom_dequeue() {
    wp_dequeue_style('et-gf-open-sans');
}

add_action('wp_enqueue_scripts', 'custom_dequeue');

// Также пробовал
add_action('wp_print_styles', 'custom_dequeue', 9999);

// Пробовал хуки: wp_footer, wp_head, wp_print_scripts,
// с высоким приоритетом и по умолчанию - безрезультатно

Всё, что это делает - перемещает код из head перед закрывающим тегом </body>.

Я связался с автором плагина, и он предложил тот же код, который я уже пробовал. Жду дальнейшего ответа.

Я уверен, что работаю с правильным именем handle. Я изменил URL в коде, чтобы точно определить, какая именно строка загружает шрифт (у автора несколько мест, где подключаются шрифты).

Есть идеи?

---------------------------------------------

Обновление

Шрифт загружается с этим действием:

add_action('wp_enqueue_scripts', array($this, 'load_scripts_styles'));

И он ставится в очередь в функции load_scripts_styles

Я пробовал использовать высокий приоритет везде.

Я также использую плагин Query Monitor, который показывает порядок всех хуков, какой плагин к чему подключается, и какую функцию использует. Мой код появляется после кода плагина, но всё, что происходит - это перемещение из заголовка в подвал. Это сводит меня с ума!

8
Комментарии

Как он добавляется в очередь?

birgire birgire
16 сент. 2015 г. 21:09:12

Вы пробовали использовать высокий приоритет для хука 'wp_enqueue_scripts'? Я спрашиваю, потому что вы не показали и не упомянули это явно. Большинство плагинов и тем в настоящее время добавляют стили через этот хук, так что вы очень близки — вы можете также указать приоритет там.

totels totels
16 сент. 2015 г. 21:12:23

@birgire Я отредактировал свой пост, ответив на ваши вопросы. Спасибо за помощь

John_911 John_911
16 сент. 2015 г. 21:23:26

@totels Я отредактировал свой пост, ответив на ваши вопросы. Спасибо за помощь

John_911 John_911
16 сент. 2015 г. 21:23:45

Вы уверены, что нет кода в другом месте, который проверяет и подключает его позже? Если он появляется в подвале, он мог быть привязан к чему-то, что срабатывает до или при вызове wp_footer.

Milo Milo
16 сент. 2015 г. 21:27:24

@Milo Должно быть, это так и есть, только это может объяснить ситуацию, верно?

John_911 John_911
16 сент. 2015 г. 21:32:05

Думаю, да. Также можно попробовать не просто убрать из очереди, а полностью отменить регистрацию, тогда скрипт не сможет быть добавлен в очередь без повторной регистрации или повторного добавления с полными параметрами.

Milo Milo
16 сент. 2015 г. 21:43:46

@Milo спасибо за помощь. Я опубликовал ответ. Теперь все в порядке.

John_911 John_911
16 сент. 2015 г. 22:09:29
Показать остальные 3 комментариев
Все ответы на вопрос 1
1
22

Хорошо, я разобрался с этой проблемой.

function custom_dequeue() {
    wp_dequeue_style('et-gf-open-sans');
    wp_deregister_style('et-gf-open-sans');
}

add_action( 'wp_enqueue_scripts', 'custom_dequeue', 9999 );
add_action( 'wp_head', 'custom_dequeue', 9999 );

@milo был прав. Плагин повторно добавлял шрифт, поэтому его отмена регистрации остановила загрузку этого файла.

Затем плагин также имел дополнительную проверку, где он регистрировал и добавлял другой шрифт с тем же идентификатором. Действие было привязано к хуку wp_head, поэтому я добавил свое действие к wp_head и наконец полностью остановил его загрузку!

Спасибо всем за помощь!

16 сент. 2015 г. 22:08:38
Комментарии

та же проблема здесь, но до сих пор не решена в случае с Modern Events Calendar Lite :(

eapo eapo
12 мая 2019 г. 08:30:43