當(dāng)前位置:首頁>WordPress建站>WordPress開發(fā)>WordPress主題團(tuán)隊(duì)開發(fā)Web字體加載器,本地化Web字體加載

WordPress主題團(tuán)隊(duì)開發(fā)Web字體加載器,本地化Web字體加載

現(xiàn)在,很多WordPress主題都采用了第三方Web字體,比如非常受歡迎的Google 網(wǎng)頁字體,但是這種第三方字體,對于網(wǎng)站的加載速度的影響是比較大的,此外還可能對用戶隱私造成影響。

WordPress主題審核團(tuán)隊(duì)一直以來也是不允許在主題中加載第三方或CDN的腳本和樣式文件的,但是此前對于Google字體是唯一放行的例外。不過現(xiàn)在他們已經(jīng)發(fā)布了一個(gè)Web字體加載器(Webfonts Loader),可供主題作者用來為主題集成Web字體本地化加載的功能。

也就是說,通過Webfonts Loader加載的Web字體,會(huì)自動(dòng)將字體文件下載到用戶的主機(jī)空間中,然后從本地加載,不再需要CDN調(diào)用外鏈的字體。

隨著Webfonts Loader的到來,以后只要主題中用到第三方Web字體(不僅限于Google字體),都需要采用這個(gè)加載器實(shí)現(xiàn)本地化調(diào)用。

Webfonts Loader

項(xiàng)目地址:https://github.com/WPTT/webfont-loader

下載網(wǎng)絡(luò)字體(例如Google字體),并將其托管在WordPress網(wǎng)站本地(下載到 /wp-content/fonts 目錄)。

這樣可以提高性能(減少對多個(gè)頂級域的請求)并增強(qiáng)隱私保護(hù)。由于字體是在站點(diǎn)上本地托管的,無需ping通到第三方服務(wù)器來獲取Web字體,無法進(jìn)行跟蹤。

用法

WordPress主題通常使用以下wp_enqueue_style功能來排隊(duì)腳本文件:

function my_theme_enqueue_assets() {
	// Load the theme stylesheet.
	wp_enqueue_style(
		'my-theme',
		get_stylesheet_directory_uri() . '/style.css',
		array(),
		'1.0'
	);
	// Load the webfont.
	wp_enqueue_style(
		'literata',
		'https://fonts.googleapis.com/css2?family=Literata&display=swap',
		array(),
		'1.0'
	);
}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_assets' );

要本地托管Web字體,您首先需要從該存儲(chǔ)庫下載wptt-webfont-loader.php文件并將其復(fù)制到主題中。完成此操作后,以上代碼可以轉(zhuǎn)換為以下代碼:

function my_theme_enqueue_assets() {
	// Include the file.
	require_once get_theme_file_path( 'inc/wptt-webfont-loader.php' );
	// Load the theme stylesheet.
	wp_enqueue_style(
		'my-theme',
		get_stylesheet_directory_uri() . '/style.css',
		array(),
		'1.0'
	);
	// Load the webfont.
	wp_add_inline_style(
		'my-theme',
		wptt_get_webfont_styles( 'https://fonts.googleapis.com/css2?family=Literata&display=swap' )
	);
}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_assets' );

支持IE

默認(rèn)情況下,wptt_get_webfont_styles將下載.woff2文件。但是,如果需要支持IE,則需要使用.woff文件。為此,您可以在wptt_get_webfont_styles函數(shù)中,將woff作為第二個(gè)參數(shù)傳遞:

wptt_get_webfont_styles( 'https://fonts.googleapis.com/css2?family=Literata&display=swap', 'woff' );

總結(jié)

Webfonts Loader 的到來,為所有主題開發(fā)者提供了對Web字體的標(biāo)準(zhǔn)處理方式,但是這個(gè)需要主題開發(fā)者進(jìn)行集成實(shí)現(xiàn)。

如果你是一般用戶,并且主題沒有集成這個(gè)功能,那你可以使用 OMGF | Host Google Fonts LocallySelf-Hosted Google Fonts 插件來實(shí)現(xiàn)Google字體本地化加載。

聲明:本站所有文章,如無特殊說明或標(biāo)注,均為本站原創(chuàng)發(fā)布。任何個(gè)人或組織,在未征得本站同意時(shí),禁止復(fù)制、盜用、采集、發(fā)布本站內(nèi)容到任何網(wǎng)站、書籍等各類媒體平臺(tái)。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。

給TA打賞
共{{data.count}}人
人已打賞
歡迎關(guān)注WordPress大學(xué)公眾號 WPDAXUE
WordPress開發(fā)

WordPress 5.5+ 可為元數(shù)據(jù)(meta data)注冊默認(rèn)值

2020-8-5 8:55:34

WordPress開發(fā)

如何創(chuàng)建和自定義WordPress子主題

2020-10-29 9:14:03

0 條回復(fù) A文章作者 M管理員
    暫無討論,說說你的看法吧
?
個(gè)人中心
購物車
優(yōu)惠劵
今日簽到
有新私信 私信列表
搜索

临颍县| 张家港市| 绥滨县| 卢氏县| 丰县| 天气| 金平| 吐鲁番市| 五台县| 新绛县| 濮阳县| 鄂州市| 泸水县| 永昌县| 贵州省| 托克逊县| 江华| 南投市| 山西省| 通榆县| 泸定县| 新龙县| 德钦县| 德令哈市| 洛扎县| 上饶县| 石城县| 通州市| 武隆县| 连云港市| 黄浦区| 永善县| 西林县| 遵义市| 嘉祥县| 杭锦旗| 泾阳县| 自治县| 吴桥县| 甘洛县| 额敏县|