如何组合Google字体导入

时间:2015-09-01 10:02:42

标签: wordpress httprequest google-webfonts

我正在使用带有Divi主题的Wordpress,

有这段代码:

    function et_divi_fonts_url() {
    $fonts_url = '';

    /* Translators: If there are characters in your language that are not
     * supported by Open Sans, translate this to 'off'. Do not translate
     * into your own language.
     */
    $open_sans = _x( 'on', 'Open Sans font: on or off', 'Divi' );

    if ( 'off' !== $open_sans ) {
        $font_families = array();

        if ( 'off' !== $open_sans )
            $font_families[] = 'Open+Sans:300italic,400italic,700italic,800italic,400,300,700,800';

        $protocol = is_ssl() ? 'https' : 'http';
        $query_args = array(
            'family' => implode( '%7C', $font_families ),
            'subset' => 'latin,latin-ext',
        );
        $fonts_url = add_query_arg( $query_args, "$protocol://fonts.googleapis.com/css" );
    }

    return $fonts_url;
}

生成此输出:

<link rel='stylesheet' id='tp-open-sans-css'  href='http://fonts.googleapis.com/css?family=Open+Sans%3A300%2C400%2C600%2C700%2C800&#038;ver=4.2.4' type='text/css' media='all' />
<link rel='stylesheet' id='tp-raleway-css'  href='http://fonts.googleapis.com/css?family=Raleway%3A100%2C200%2C300%2C400%2C500%2C600%2C700%2C800%2C900&#038;ver=4.2.4' type='text/css' media='all' />
<link rel='stylesheet' id='tp-droid-serif-css'  href='http://fonts.googleapis.com/css?family=Droid+Serif%3A400%2C700&#038;ver=4.2.4' type='text/css' media='all' />
<link rel='stylesheet' id='et_monarch-open-sans-css'  href='http://fonts.googleapis.com/css?family=Open+Sans:400,700' type='text/css' media='all' />
<link rel='stylesheet' id='divi-fonts-css'  href='http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,800italic,400,300,700,800&#038;subset=latin,latin-ext' type='text/css' media='all' />

我想知道是否有一种简单的方法将所有这些资源合并到一个请求中?

3 个答案:

答案 0 :(得分:1)

取自https://developers.google.com/fonts/docs/getting_started?hl=en

要请求多个字体系列,请使用竖线字符(|)分隔名称。

例如,要求字体Tangerine,Inconsolata和Droid Sans:

https://fonts.googleapis.com/css?family=Tangerine|Inconsolata|Droid+Sans

答案 1 :(得分:0)

Google Font Optimization工具是一种解决方案。

您可以在此工具中插入多个字体URL,并获得一个简单的URL作为回报。

另一种解决方案是Easy Fonts,但是它将所有字体组合在一个URL中,而不是允许您选择要组合的字体:

<link href="https://pagecdn.io/lib/easyfonts/fonts.css" rel="stylesheet" />

答案 2 :(得分:0)

我用过 https://developers.google.com/fonts/docs/css2

示例

<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Open+Sans+Condensed:wght@300;700&family=Open+Sans:wght@300;400;600;700;800&family=PT+Sans+Narrow:wght@400;700&family=PT+Sans:ital,wght@0,400;0,700;1,400;1,700&display=swap">

display = swap

https://developers.google.com/web/updates/2016/02/font-display

swap给予字体正面零秒的块周期和无限的 掉期。这意味着浏览器立即使用 如果未加载字体,则回退,但以 加载后尽快。与块类似,仅应使用此值 当以特定字体呈现文本对于页面很重要时, 但是以任何字体进行渲染仍会得到正确的信息。 徽标文本是显示公司徽标的理想选择,因为它可以显示公司的 使用合理的后备名称可以传达信息,但您可以 最终使用官方字体。