Mise en file d'attente des polices Web Google de la manière habituelle, c'est-à-dire en utilisant la wp_enqueue_style
fonction comme ça ...
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' );
... entraîne une link
balise placée dans l'en-tête comme suit:
<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' />
Comme vous pouvez le voir, l'URL résultante est codée .
Je suis sûr que cela ne pose aucun problème, mais pour garder les choses propres et claires, je voudrais aller de l'avant et demander - Existe-t-il un moyen de mettre en file d'attente les polices Web de Google (via functions.php
et non un plugin) de manière à ce que la sortie de l'URL n'est pas codé?
C'est comme ça:
<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' />
Raison de la prime
La réponse de @ webaware est presque parfaite, surtout parce qu'elle est similaire à la méthode utilisée pour mettre en file d'attente la police Web Google «Open Sans» dans le thème Twenty Twelve .
Le seul problème dans la sortie est que c'est comme ça:
<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' />
Remarquez le &
? Cela devrait être le &
cas, sinon les fichiers de polices servis n'ont que les latin
glyphes (c'est-à-dire que le subset
paramètre dans l'URL est négligé sauf si vous utilisez &
et NON son entité HTML).
Quiconque peut aider à modifier la réponse de @ webaware pour que la sortie ressemble à ceci ...
<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' />
... gagne la prime.
la source
Réponses:
WordPress sait ce qu'il fait ici. Honnête.
Lors du rendu d'une esperluette en HTML, vous devez toujours utiliser
&
ou&
. Le navigateur le convertit ensuite en&
avant de réellement lancer la requête HTTP. Voyez par vous-même en inspectant les appels réseau dans un outil d'inspection Web. Vous ne perdez pas réellement vos sous-ensembles non latins.Cela m'indique que vous avez inspecté la source pour voir s'il y a une esperluette échappée, sans vérifier réellement le comportement résultant. Oui, cela se produit lorsque vous collez une URL avec une esperluette échappée dans une barre d'adresse. Mais pas quand vous avez une URL correctement encodée et échappée dans un attribut HTML src ou href.
Vous devez rechercher sur http://www.blooberry.com/indexdot/html/topics/urlencoding.htm des caractères supplémentaires dangereux et réservés. Les deux groupes doivent toujours être codés.
la source
http://fonts.googleapis.com/css?family=Ubuntu+Condensed&subset=latin,latin-ext
), La façon dont le navigateur la traite est équivalente à la saisie de l'utilisateurhttp://fonts.googleapis.com/css?family=Ubuntu+Condensed&subset=latin,latin-ext
(c.-à-d. Avec l'&
entité réelle et non l'entité HTML) dans la barre d'adresse. Est-ce exact? Si oui, merci pour l'explication claire. :)%38
) car il est utilisé dans son rôle d'URL spécial. URL codant pour un caractère réservé ou dangereux comme|
,:
ou des espaces sont séparés, et aussi encouragé.Essayez ceci (gérera également HTTP vs HTTPS):
la source
&
comme&
et charges exactement le même URI. Pour tester, j'ai chargé des pages HTML simples avec les deux et vidé le cache avant le chargement; les deux ont chargé les mêmes fichiers de polices (même taille). Essayez-le.Sur la base de cette réponse, vous pouvez essayer quelque chose comme ce code non testé :
la source
<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' />
- notice & # 038; ver = 3.5 ? Ce devrait plutôt être ? Ver = 3.5 . Une solution à l'esprit? Merci d'avoir répondu. :)?
. Cela entraînerait une URL non valide pour Google.http://fonts.googleapis.com/css?family=Ubuntu%20Condensed|Open%20Sans:400italic,700italic,400,700?ver=3.5
se charge très bien. Ou est-ce que je manque votre point?&
pas?
. Vous ne pouvez pas compter sur la générosité de Google.En fait, c'est aussi simple que cela:
Et cela devrait produire:
C'est assez proche de ce que je voulais (je regrette seulement que cela
&
devienne&
en sortie). Mais j'ai réalisé que cela n'avait pas vraiment d'importance, en grande partie grâce à la réponse d'Andrew Nacin .Mais je dois remercier tout le monde pour leurs efforts.
la source