Enfileirando o Google Web Fonts da maneira usual, ou seja, usando a wp_enqueue_style
função da seguinte maneira ...
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' );
... resulta em uma link
tag colocada no cabeçalho da seguinte forma:
<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' />
Como você pode ver, o URL resultante é codificado .
Tenho certeza de que não apresenta problemas, mas para manter as coisas limpas e claras, gostaria de ir em frente e perguntar - Existe uma maneira de enfileirar o Google Web Fonts (via functions.php
e não um plug-in) de maneira que a URL seja impressa não está codificado?
É assim:
<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' />
Razão da Recompensa
A resposta da @ webaware é quase perfeita, especialmente porque é semelhante ao método empregado na colocação da fonte da Web do Google 'Open Sans' no tema Twenty Twelve .
O único problema na saída é que é assim:
<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' />
Observe o &
? Deveria ser &
, caso contrário, os arquivos de fonte servidos têm apenas os latin
glifos (ou seja, o subset
parâmetro na URL é negligenciado, a menos que você use &
e NÃO sua entidade HTML).
Qualquer pessoa que possa ajudar a modificar a resposta do @ webaware para que a saída fique assim ...
<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' />
... ganha a recompensa.
fonte
Respostas:
WordPress sabe o que está fazendo aqui. Honesto.
Ao renderizar um e comercial em HTML, você sempre deve usar
&
or&
. O navegador então o converte&
antes de realmente disparar a solicitação HTTP. Veja você mesmo inspecionando as chamadas de rede em uma ferramenta de inspeção da web. Na verdade, você não está perdendo seus subconjuntos não-latinos.Isso indica que você inspecionou a fonte para verificar se existe um e comercial em fuga, sem realmente verificar o comportamento resultante. Sim, isso ocorre quando você cola um URL com um e comercial escapado em uma barra de endereço. Mas não quando você tiver um URL codificado e escapado corretamente em um atributo HTML src ou href.
Você deve procurar em http://www.blooberry.com/indexdot/html/topics/urlencoding.htm quanto a caracteres adicionais não seguros e reservados. Ambos os grupos devem sempre ser codificados.
fonte
http://fonts.googleapis.com/css?family=Ubuntu+Condensed&subset=latin,latin-ext
), a maneira como o navegador o trata é equivalente ao acesso do usuáriohttp://fonts.googleapis.com/css?family=Ubuntu+Condensed&subset=latin,latin-ext
(ou seja, com a&
entidade real e não a HTML) em a barra de endereço. Isso está correto? Nesse caso, obrigado pela explicação clara. :)%38
) porque está sendo usado em sua função de URL especial. URL codifica um caráter reservado ou inseguro como|
,:
ou espaços são separados, e também incentivou.Tente isso (também manipulará HTTP vs HTTPS):
fonte
&
como&
e cargas exatamente o mesmo URI. Para testar, carreguei páginas HTML simples com ambos e limpei o cache antes de carregar; ambos carregaram os mesmos arquivos de fonte (mesmo tamanho). Tente.Com base nesta resposta, você pode tentar algo como este código não testado :
fonte
<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' />
- observe = ver 3.5 ? Deveria ser ? Ver = 3.5 . Alguma solução em mente? Obrigado pela resposta. :)?
. Isso resultaria em um URL inválido para o Google.http://fonts.googleapis.com/css?family=Ubuntu%20Condensed|Open%20Sans:400italic,700italic,400,700?ver=3.5
está carregando muito bem. Ou estou perdendo o seu ponto?&
não é?
. Você não pode confiar na generosidade do Google.Na verdade, é tão simples quanto isto:
E isso deve gerar:
Isso é muito parecido com o que eu queria (só lamento é que
&
se torna&
na saída). Mas então percebi que isso não importa, em grande parte, graças à resposta de Andrew Nacin .Mas devo agradecer a todos por seus esforços.
fonte