Удаление шрифтов Google Fonts, которые (вероятно) добавлены плагинами

11 сент. 2015 г., 14:31:56
Просмотры: 19.9K
Голосов: 6

У меня есть тема, которая загружает шрифт '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"

Вопрос: Как отключить шрифты, загружаемые плагинами на фронтенде, поскольку они не используются в визуальном оформлении сайта?

Заранее спасибо :)

0
Все ответы на вопрос 2
4

Если шрифты загружаются через плагин, для их вставки используется хук. Вы можете отключить этот хук, но вам нужно знать, откуда он берется. В основном потому, что вам понадобится 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/

11 сент. 2015 г. 16:00:56
Комментарии

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

tushonline tushonline
11 сент. 2015 г. 16:47:47

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

tushonline tushonline
11 сент. 2015 г. 21:35:08

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

tushonline tushonline
18 сент. 2015 г. 09:33:13

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

totels totels
18 сент. 2015 г. 18:27:39
2

Я хотел оставить комментарий по этому поводу, но у меня пока недостаточно репутации для этого. У меня была похожая проблема, и я использовал простой плагин в качестве основы для её решения. Возможно, вы сможете поступить аналогично.

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

11 сент. 2015 г. 15:22:37
Комментарии

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

tushonline tushonline
11 сент. 2015 г. 16:49:47

Извини, но это не сработало, Доминик. Это удалило только шрифты, загружаемые из панели управления, но шрифты темы остались, включая нежелательные: Lato и Roboto. Не уверен, как браузер их определяет.

tushonline tushonline
11 сент. 2015 г. 21:04:16