Ставить в очередь Google Web Fonts обычным способом, т. Е. С помощью wp_enqueue_style
функции, подобной так ...
function wpse_google_webfonts() {
wp_enqueue_style( 'google-webfonts', 'http://fonts.googleapis.com/css?family=Ubuntu+Condensed|Open+Sans:400italic,700italic,400,700' );
}
add_action( 'wp_enqueue_scripts', 'wpse_google_webfonts' );
... в результате link
тег помещается в заголовок так:
<link rel='stylesheet' id='google-webfonts-css' href='http://fonts.googleapis.com/css?family=Ubuntu+Condensed%7COpen+Sans%3A400italic%2C700italic%2C400%2C700&ver=3.5' type='text/css' media='all' />
Как видите, результирующий URL закодирован .
Я почти уверен, что это не создает никаких проблем, но чтобы держать вещи в чистоте и ясности, я хотел бы продолжить и спросить - есть ли способ поставить в очередь Google Web Fonts (через, functions.php
а не плагин) таким образом, чтобы вывод URL не кодируется?
Вот так вот:
<link rel='stylesheet' id='google-webfonts-css' href='http://fonts.googleapis.com/css?family=Ubuntu+Condensed|Open+Sans:400italic,700italic,400,700?ver=3.5' type='text/css' media='all' />
Причина для щедрости
Ответ @ webaware близок к идеальному, особенно потому, что он похож на метод, использованный при постановке в очередь веб-шрифта Google «Open Sans» в теме «Двадцать двенадцать» .
Единственная проблема в выводе - это так:
<link rel='stylesheet' id='twentytwelve-fonts-css' href='http://fonts.googleapis.com/css?family=Ubuntu+Condensed|Open+Sans:400italic,700italic,400,700&subset=latin,latin-ext' type='text/css' media='all' />
Заметьте &
? Должно быть &
, в противном случае обслуживаемые файлы шрифтов имеют только latin
глифы (т. Е. subset
Параметр в URL игнорируется, если вы не используете, &
а НЕ его HTML-сущность).
Любой, кто может помочь изменить ответ @ webaware так, чтобы результат выглядел следующим образом ...
<link rel='stylesheet' id='twentytwelve-fonts-css' href='http://fonts.googleapis.com/css?family=Ubuntu+Condensed|Open+Sans:400italic,700italic,400,700&subset=latin,latin-ext' type='text/css' media='all' />
... выигрывает награду
источник
Ответы:
WordPress знает, что здесь делает. Честный.
При рендеринге амперсанда в HTML вы всегда должны использовать
&
или&
. Затем браузер преобразует его&
до фактического запуска HTTP-запроса. Убедитесь сами, проверив сетевые вызовы в инструменте веб-инспектора. Вы на самом деле не теряете свои нелатинские подмножества.Это говорит мне о том, что вы проверили источник, чтобы увидеть, что существует амперсанд, без фактической проверки результирующего поведения. Да, это происходит при вставке URL-адреса с экранированным амперсандом в адресной строке. Но не тогда, когда у вас есть правильно закодированный и экранированный URL в атрибуте HTML src или href.
Вам следует поискать http://www.blooberry.com/indexdot/html/topics/urlencoding.htm дополнительные небезопасные и зарезервированные символы. Обе группы всегда должны быть закодированы.
источник
http://fonts.googleapis.com/css?family=Ubuntu+Condensed&subset=latin,latin-ext
), То, как браузер обрабатывает его, эквивалентно вводу пользователяhttp://fonts.googleapis.com/css?family=Ubuntu+Condensed&subset=latin,latin-ext
(т. Е. С фактической,&
а не с HTML-сущностью) в адресная строка. Это верно? Если так, спасибо за ясное объяснение. :)%38
), потому что он используется в своей специальной роли URL. URL , кодирующий зарезервированный или небезопасный характер , как|
,:
или пространства разделены, а также поощряется.Попробуйте это (также будет обрабатывать HTTP против HTTPS):
источник
&
как&
и загружает точно такой же URI. Чтобы проверить, я загрузил простые HTML-страницы с обоими, и очистил кеш перед загрузкой; оба загружали одинаковые файлы шрифтов (одинакового размера). Попробуй это.На основе этого ответа вы можете попробовать что-то вроде этого непроверенного кода:
источник
<link rel='stylesheet' id='google-webfonts-css' href='http://fonts.googleapis.com/css?family=Ubuntu Condensed|Open Sans:400italic,700italic,400,700&ver=3.5' type='text/css' media='all' />
- уведомление & ver = 3,5 ? Скорее должно быть ? Ver = 3,5 . Любое исправление в виду? Спасибо за ответ. :)?
. Это приведет к неверному URL для Google.http://fonts.googleapis.com/css?family=Ubuntu%20Condensed|Open%20Sans:400italic,700italic,400,700?ver=3.5
загружается просто отлично. Или я скучаю по твоей точке?&
, нет?
. Вы не можете полагаться на щедрость Google.На самом деле это так просто:
И это должно вывести:
Это довольно близко к тому, что я хотел (только сожаление о том, что
&
становится&
на выходе). Но потом я понял, что это не имеет значения, на самом деле, во многом благодаря ответу Эндрю Нацина .Но я должен поблагодарить всех за их усилия.
источник