Почему я не могу поставить в очередь несколько шрифтов Google в функциях WordPress. php? - PullRequest
1 голос
/ 31 марта 2020

Я использую wp_enqueue_style, чтобы поставить в очередь этот файл шрифта Google . Вот мой код:

wp_enqueue_style( 'google-fonts', 'https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,300;0,400;0,700;1,400&family=Neuton:ital,wght@0,300;0,400;0,700;1,400&display=swap', [] );

Это в моих функциях. php file.

Однако, когда я просматриваю источник на загруженной странице, URL для этого файла шрифта сокращается до: https://fonts.googleapis.com/css2?family=Neuton%3Aital%2Cwght%400%2C300%3B0%2C400%3B0%2C700%3B1%2C400& display = swap & ver = 5.3.2

Как видите, первый параметр семейства был удален после вывода через wp_enqueue_style. Есть ли способ исправить это, не делая ничего хакерского? Я думаю, что может быть устаревший способ создания URL для обоих семейств шрифтов, но я бы предпочел использовать то, что сейчас предоставляет Google. Мой исходный URL внутри wp_enqueue_style - это URL , сгенерированный Google Fonts для встраивания.

Ответы [ 3 ]

4 голосов
/ 31 марта 2020

Один и тот же параметр запроса определяется дважды (family), поэтому WordPress удаляет его. Это обычная вещь в типичном контексте: если есть повторяющийся параметр запроса, используется только последний. WordPress использует это «правило» при постановке в очередь URL.

Я не могу сказать вам, почему Google Fonts изменил синтаксис с разделителя | (например, https://fonts.googleapis.com/css?family=Montserrat|Neuton&display=swap) на этот повторяющийся family параметр, но похоже, что это может быть из-за сложности, как вы видите в своем URL. Одно можно сказать наверняка: это вызовет некоторые проблемы, как будто вы столкнулись с этим сейчас. Либо WordPress нужно будет отрегулировать для этого, либо Google Fonts придется обновить / отменить свой синтаксис URL. Это, вероятно, не произойдет сегодня.

В этом случае вам лучше сделать это самостоятельно, используя сайт Classi c (в панели навигации Google Fonts), чтобы создать свой шрифт. URL вместо Я знаю, что вы не получите столько вариантов (похоже, вы пытаетесь использовать переменные шрифты, которые просто фантастичны c!), Поэтому это немного разочаровывает.

Вы также можете скачать файлы и самостоятельно размещать эти шрифты. Это также повышение производительности во многих случаях.

1 голос
/ 01 мая 2020

Это на самом деле связано с PHP и тем, как он анализирует параметры запроса.

https://www.php.net/manual/en/function.parse-str.php

В любом случае текущий обходной путь заключается в передайте «null» параметру version, чтобы WordPress не добавил «ver» в URL.

wp_enqueue_style( 'google-fonts', 'https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,300;0,400;0,700;1,400&family=Neuton:ital,wght@0,300;0,400;0,700;1,400&display=swap', [], null );

Это окончание "null" устранит проблему, так как WordPress не будет пытаться добавить какие-либо дополнительные параметры в URL, поэтому не будет запускать его через функции обработки строки запроса PHP.

Это может быть решено более непосредственно в будущем обновлении WordPress. Однако отсутствие версии для этих внешних URL-адресов имеет смысл независимо от того, *. 1013 *

0 голосов
/ 31 марта 2020
Стиль

'google-fonts' может быть перенесен в другое место. Вы можете проверить загруженные шрифты через dev console

enter image description here

...