Poner en contacto las fuentes web de Google de la manera habitual, es decir, usar la wp_enqueue_style
función de esta manera ...
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 en una link
etiqueta colocada en el encabezado así:
<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 puede ver, la URL resultante está codificada .
Estoy bastante seguro de que no plantea problemas, pero para mantener las cosas limpias y claras, me gustaría seguir adelante y preguntar: ¿hay alguna manera de poner en contacto las fuentes web de Google (a través de functions.php
un complemento y no un complemento) de manera que la salida de URL no está codificado?
Eso es así:
<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' />
Motivo de la generosidad
La respuesta de @webaware es casi perfecta, especialmente porque es similar al método empleado para obtener la fuente web de Google 'Open Sans' en el tema Twenty Twelve .
El único problema en el resultado es que es así:
<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 el &
? Debería serlo &
, de lo contrario, los archivos de fuente servidos solo tienen los latin
glifos (es decir, el subset
parámetro en la URL se descuida a menos que lo use &
y NO su entidad HTML).
Cualquiera que pueda ayudar a modificar la respuesta de @ webaware para que la salida se vea así ...
<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' />
... gana la recompensa.
fuente
Respuestas:
WordPress sabe lo que está haciendo aquí. Honesto.
Al representar un ampersand en HTML, siempre debe usar
&
o&
. El navegador luego lo convierte&
antes de disparar la solicitud HTTP. Compruébelo usted mismo inspeccionando las llamadas de red en una herramienta de inspección web. En realidad no estás perdiendo tus subconjuntos no latinos.Esto me dice que ha inspeccionado la fuente para ver que hay un ampersand escapado, sin verificar realmente el comportamiento resultante. Sí, ocurre cuando pega una URL con un signo de escape en una barra de direcciones. Pero no cuando tiene una URL correctamente codificada y escapada en un atributo HTML src o href.
Debería consultar http://www.blooberry.com/indexdot/html/topics/urlencoding.htm para obtener caracteres adicionales inseguros y reservados. Ambos grupos siempre deben estar codificados.
fuente
http://fonts.googleapis.com/css?family=Ubuntu+Condensed&subset=latin,latin-ext
), la forma en que el navegador lo trata es equivalente a la entrada del usuariohttp://fonts.googleapis.com/css?family=Ubuntu+Condensed&subset=latin,latin-ext
(es decir, con la&
entidad real y no la entidad HTML) en La barra de direcciones. ¿Es eso correcto? Si es así, gracias por la explicación clara. :)%38
) porque se está utilizando en su función de URL especial. URL que codifica un carácter reservado o inseguro como|
,:
o espacios están separados, y también alentó.Pruebe esto (también manejará HTTP vs HTTPS):
fuente
&
como&
y cargas exactamente el mismo URI. Para probar, cargué páginas HTML simples con ambos y borré el caché antes de cargar; ambos cargaron los mismos archivos de fuente (mismo tamaño). Intentalo.Según esta respuesta , puede probar algo como este código no probado :
fuente
<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' />
- ¿aviso & # 038; ver = 3.5 ? Más bien debería ser ? Ver = 3.5 . ¿Alguna solución en mente? Gracias por la respuesta. :)?
. Eso daría como resultado una URL no válida para Google.http://fonts.googleapis.com/css?family=Ubuntu%20Condensed|Open%20Sans:400italic,700italic,400,700?ver=3.5
se está cargando bien. ¿O me estoy perdiendo tu punto?&
, no?
. No puede confiar en la generosidad de Google.En realidad, es tan simple como esto:
Y eso debería dar salida:
Eso está bastante cerca de lo que quería (solo lamento ser lo que se
&
convierte&
en salida). Pero luego me di cuenta de que realmente no importa, en gran parte gracias a la respuesta de Andrew Nacin .Pero debo agradecer a todos por sus esfuerzos.
fuente