Удаление шрифтов Google Fonts, которые (вероятно) добавлены плагинами
У меня есть тема, которая загружает шрифт 'Open Sans' из Google Fonts. Наш сайт использует SSL, и мы используем $protocol://
для формирования URL шрифта.
Однако я заметил, что некоторый плагин(ы), вероятно, добавляют 3 разных шрифта из Google Fonts, и они загружаются через http://
, что вызывает такую ошибку:
Blocked loading mixed active content "http://fonts.googleapis.com/css?family=Lato:300,400,700"
Вопрос: Как отключить шрифты, загружаемые плагинами на фронтенде, поскольку они не используются в визуальном оформлении сайта?
Заранее спасибо :)
Если шрифты загружаются через плагин, для их вставки используется хук. Вы можете отключить этот хук, но вам нужно знать, откуда он берется. В основном потому, что вам понадобится handle (идентификатор) скрипта.
Существует довольно много различных способов реализации, поэтому я попробую привести пример одного из них, но есть большая вероятность, что вам придется немного поискать самостоятельно.
Плагин может (в идеале должен) загружать шрифты напрямую с помощью wp_enqueue_style()
, и, к счастью для нас, есть функция для отмены этого действия — wp_dequeue_style()
. Вам просто нужно убедиться, что вы подключаетесь в правильное время, и тогда вы сможете удалить стиль. В большинстве случаев это делается в хуке wp_enqueue_scripts
. Возможно, разработчики установили высокий приоритет, чтобы шрифт загружался позже, но обычно в этом нет необходимости. Возможно, вам придется точно выяснить, как они это реализовали.
Где-то в плагине могут быть строки кода, например:
add_action( 'wp_enqueue_scripts', 'plugin_setup_styles' );
function plugin_setup_styles() {
// Возможно, реализация будет сложнее, в зависимости от функционала плагина
wp_register_style( 'plugin-google-font-lato', 'http://fonts.googleapis.com/css?family=Lato:300,400,700' );
wp_enqueue_style( 'plugin-google-font-lato' );
}
Возможное решение (должно работать в functions.php):
add_action( 'wp_enqueue_scripts', function() {
wp_dequeue_style( 'plugin-google-font-lato' );
}, 99 );
По сути, вам нужно узнать handle (идентификатор) скрипта, под которым он зарегистрирован. Для этого отлично подходит grep
. Начните с команды: $ grep -R wp_enqueue_style wp-content/plugins/
. Но, возможно, лучшие результаты даст поиск по названию шрифта: $ grep -Rn Lato wp-content/plugins/

Да, это логично. Спасибо. Я об этом подумал, но, видимо, без "охоты" не обойтись. (Лениво мне) . . Попробую и отпишусь. Удачи :)

Ещё один случай, который мы не учли — это @import URL в CSS-файлах, используемых плагином. Пока удалось устранить 2 ошибки. Но ошибка для шрифта "Roboto" всё ещё преследует. Непонятно, откуда он попадает на сайт, и View Source
ничего не показывает. Спасибо за подсказку. Пришлось вручную искать и обновлять эти @import
uri.

Нужна ещё помощь. Blocked loading mixed active content "http://fonts.googleapis.com/css?family=Roboto:300,100,400"
— это остаётся загадкой.
1) Не отображается в исходном коде.
2) Не обнаруживается в файлах/плагинах.
3) Не видно в GtMetrix
или "Waterfall" структуре других сайтов.
4) Появляется только в браузерах, что странно.
Заранее спасибо :)

Это может быть настройкой в вашей теме или плагине, возможно, вы сможете найти эту настройку в базе данных с помощью запроса SELECT * FROM wp_config WHERE option_value LIKE '%oboto%';
. Если это не сработает, я могу предложить только отключать плагины по одному, пока изменение не произойдет, а затем более детально изучить настройки.

Я хотел оставить комментарий по этому поводу, но у меня пока недостаточно репутации для этого. У меня была похожая проблема, и я использовал простой плагин в качестве основы для её решения. Возможно, вы сможете поступить аналогично.
Посмотрите плагин disable-google-fonts на GitHub. Он отключает различные шрифты Google, используемые в темах WordPress. Вы можете модифицировать его или использовать фрагменты кода для реализации нужного вам функционала.

Я видел это незадолго до того, как проверить здесь снова. Я не хочу сразу избавляться от Google Fonts, а только отключить те, что были добавлены плагинами. Все равно попробую, если подойдет. Огромное спасибо.
