Enqueuing Google Web Fonts seperti biasa, yaitu, menggunakan wp_enqueue_style
fungsi seperti ...
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' );
... menghasilkan link
tag yang ditempatkan di header seperti:
<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' />
Seperti yang Anda lihat, URL yang dihasilkan dikodekan .
Saya cukup yakin itu tidak menimbulkan masalah, tetapi untuk menjaga hal-hal tetap bersih dan jelas, saya ingin melanjutkan dan bertanya - Apakah ada cara untuk membuat huruf Google Web Font (melalui functions.php
dan bukan plugin) dengan cara yang URL output tidak dikodekan?
Seperti itulah:
<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' />
Alasan Bounty
Jawaban @ webaware hampir sempurna, terutama karena mirip dengan metode yang digunakan dalam memunculkan Font Web Google 'Open Sans' dalam tema Twenty Twelve .
Satu-satunya masalah dalam output adalah seperti ini:
<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' />
Perhatikan &
? Seharusnya &
, jika file font yang dilayani hanya memiliki latin
mesin terbang (yaitu subset
parameter dalam URL diabaikan kecuali Anda menggunakan &
dan BUKAN entitas HTML-nya).
Siapa pun yang dapat membantu memodifikasi jawaban @ webaware sehingga hasilnya terlihat seperti ini ...
<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' />
... memenangkan hadiah.
sumber
Jawaban:
WordPress tahu apa yang dilakukannya di sini. Jujur.
Saat merender ampersand dalam HTML, Anda harus selalu menggunakan
&
atau&
. Browser kemudian mengubahnya&
sebelum benar-benar menembak permintaan HTTP. Lihat sendiri dengan memeriksa panggilan jaringan dalam alat pemeriksa web. Anda sebenarnya tidak kehilangan himpunan bagian non-latin Anda.Ini memberitahu saya bahwa Anda telah memeriksa sumber untuk melihat ada ampersand yang lolos, tanpa benar-benar memverifikasi perilaku yang dihasilkan. Ya, itu terjadi ketika Anda menempelkan URL dengan tanda yang keluar dan di bilah alamat. Tetapi tidak ketika Anda memiliki URL yang dikodekan dengan benar dan lolos dalam atribut HTML src atau href.
Anda harus memeriksa http://www.blooberry.com/indexdot/html/topics/urlencoding.htm untuk mengetahui karakter tambahan yang tidak aman dan dilindungi undang-undang. Kedua kelompok harus selalu dikodekan.
sumber
http://fonts.googleapis.com/css?family=Ubuntu+Condensed&subset=latin,latin-ext
), cara browser memperlakukannya sama dengan memasukkan penggunahttp://fonts.googleapis.com/css?family=Ubuntu+Condensed&subset=latin,latin-ext
(yaitu dengan&
entitas HTML aktual dan bukan entitas) di bilah alamat. Apakah itu benar? Jika demikian, terima kasih atas penjelasan yang jelas. :)%38
) karena sedang digunakan dalam peran URL khusus. URL encoding karakter dilindungi atau tidak aman seperti|
,:
, atau ruang yang terpisah, dan juga mendorong.Coba ini (juga akan menangani HTTP vs HTTPS):
sumber
&
sebagai&
dan beban persis sama URI. Untuk menguji, saya memuat halaman HTML sederhana dengan keduanya, dan membersihkan cache sebelum memuat; keduanya memuat file font yang sama (ukuran yang sama). Cobalah.Berdasarkan jawaban ini Anda dapat mencoba sesuatu seperti kode yang belum diuji ini :
sumber
<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' />
- perhatikan & # 038; ver = 3.5 ? Seharusnya agak ? Ver = 3.5 . Adakah yang perlu diperbaiki? Terima kasih atas jawabannya. :)?
. Itu akan menghasilkan URL yang tidak valid untuk Google.http://fonts.googleapis.com/css?family=Ubuntu%20Condensed|Open%20Sans:400italic,700italic,400,700?ver=3.5
sedang memuat dengan baik. Atau apakah saya kehilangan poin Anda?&
tidak?
. Anda tidak dapat mengandalkan kemurahan hati Google.Sebenarnya, sesederhana ini:
Dan itu akan menghasilkan:
Itu cukup dekat dengan apa yang saya inginkan (hanya penyesalan yang
&
menjadi&
output). Tetapi kemudian saya menyadari bahwa itu tidak masalah, sungguh, sebagian besar berkat jawaban Andrew Nacin .Tetapi saya harus berterima kasih kepada semua orang atas upaya mereka.
sumber