Перейти до вмісту

Безпечні шрифти

Безпечні шрифти - це опціональний модуль, який зменшує і контролює зовнішні запити до Google Fonts, що надсилаються вашою темою чи плагінами. Він діє на кожній таблиці стилів (<link>), адреса якої вказує на fonts.googleapis.com, і пропонує дві незалежні поведінки, які можна вмикати окремо: оптимізацію завантаження та притримання таблиці до моменту надання згоди.

Модуль надає інструменти для обмеження й відтермінування запитів до третіх сторін. Він не є юридичною консультацією і сам по собі не гарантує жодного конкретного правового ефекту. Повний хостинг файлів шрифтів на власному сервері не входить до обсягу цієї версії модуля, модуль обмежує й контролює зовнішні виклики, а не переносить самі файли.

Модуль за замовчуванням вимкнений. Увімкніть його в WooCommerce > Polski > Модулі (ключ модуля safe_fonts). Після увімкнення він діє лише на фронті магазину, адмін-панель пропускається. Якщо модуль не може розпізнати чи переписати даний тег, він повертає його без змін, тож шрифти завжди працюють далі (м’яка деградація).

РежимЩо робить
ОптимізаціяДодає display=swap до адреси Google Fonts, якщо його бракує, та емітує підказки preconnect для fonts.googleapis.com і (з crossorigin) fonts.gstatic.com. Зменшує зсуви макета і вартість з’єднання, не змінюючи того, що завантажується.
Притримання до згодиПереписує тег <link> Google Fonts на вимкнене замінне посилання (зі справжньою адресою в атрибуті data). Невеликий контролер знову вмикає його лише тоді, коли відвідувач надасть обрану категорію згоди. До того часу зовнішній запит не виконується.

Обидва режими незалежні. Ви можете увімкнути лише один, обидва одразу або жоден.

Після увімкнення оптимізації модуль:

  • дописує display=swap до адреси таблиці Google Fonts, якщо в ній немає явного значення display. Адреси з-поза Google Fonts залишаються незмінними.
  • виводить у <head> дві підказки preconnect: для https://fonts.googleapis.com та для https://fonts.gstatic.com (з атрибутом crossorigin).

Ця поведінка не блокує жодних запитів, лише зменшує зсуви макета і вартість встановлення з’єднання.

Після увімкнення цього режиму модуль замінює тег Google Fonts на вимкнену таблицю (disabled, media="print", href="about:blank"), яка нічого не завантажує. Справжня адреса потрапляє до атрибута data-polski-safefont, а обрана категорія згоди до data-polski-consent. Невеликий контролер на фронті вмикає таблицю лише тоді, коли відвідувач надасть налаштовану категорію згоди, та реагує на подію polskiConsentChange від Менеджера згод.

Для надійності зберігається також варіант <noscript> з оригінальним тегом, завдяки чому шрифти завантажаться навіть при вимкненому JavaScript. Контролер додається лише тоді, коли в даному запиті дійсно притримано якусь таблицю шрифтів.

Цей режим співпрацює з модулем Менеджер згод (категорія згоди і подія зміни згоди походять з цього модуля). Щоб притримання мало сенс, категорія згоди мусить реально дотримуватися на боці відвідувача.

Налаштування знаходяться на картці модуля в WooCommerce > Polski > Модулі.

НалаштуванняЗа замовчуваннямОпис
ОптимізаціяувімкненоДодає display=swap і підказки preconnect для хостів Google Fonts.
Притримання до згодивимкненоПритримує таблицю Google Fonts до моменту надання обраної категорії згоди.
Категорія згодиПреференціїКатегорія згоди, потрібна для завантаження шрифтів при притриманні.

Якщо тег не вдається розпарсити чи безпечно реконструювати (наприклад, він не є стандартним посиланням rel="stylesheet"), модуль повертає його без змін. Це означає, що непідтримувані випадки не псують вигляд сторінки, а шрифти завантажуються так, як раніше.

Шрифти не завантажуються після увімкнення притримання - перевірте, чи відвідувач надав обрану категорію згоди і чи модуль Менеджер згод активний. До моменту згоди таблиця залишається вимкненою.

display=swap не з’являється - стосується виключно адрес, що вказують на fonts.googleapis.com, і лише коли адреса ще не має явного значення display.

Шрифти, завантажені локально з теми, не змінюються - модуль діє лише на зовнішніх запитах до Google Fonts. Локально хостовані шрифти не підтримуються.

Повідомлення про проблеми: github.com/wppoland/polski/issues

Ця сторінка має виключно інформаційний характер і не є юридичною консультацією. Перед впровадженням проконсультуйтеся з юристом. Polski for WooCommerce є програмним забезпеченням з відкритим кодом (GPLv2), що надається без гарантій.