Make WordPress Core

Changeset 55268


Ignore:
Timestamp:
02/07/2023 03:50:14 PM (14 months ago)
Author:
audrasjb
Message:

Twenty Fifteen: Bundle Google Fonts locally.

This changeset bundles the Google Fonts used by Twenty Fifteen locally in the theme folder, instead of loading them from Google servers. Existing font stylesheet handles are maintained for backward compatibilily.

Props garrett-eclipse, kjellr, ocean90, SergeyBiryukov, westonruter, luminuu, audrasjb, jhoffmann, jffng, paapst, cbirdsong, webcommsat, kau-boy, MatthiasReinholz, sabernhardt, hellofromTonya, JeffPaul, davidbaumwald, desrosj, bedas, poena, costdev, mukesh27, azaozz, aristath.
See #55985.

Location:
trunk/src/wp-content/themes/twentyfifteen
Files:
90 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-content/themes/twentyfifteen/functions.php

    r54492 r55268  
    171171        /*
    172172         * This theme styles the visual editor to resemble the theme style,
    173          * specifically font, colors, icons, and column width.
    174          */
    175         add_editor_style( array( 'css/editor-style.css', 'genericons/genericons.css', twentyfifteen_fonts_url() ) );
     173         * specifically font, colors, icons, and column width. When fonts are
     174         * self-hosted, the theme directory needs to be removed first.
     175         */
     176        $font_stylesheet = str_replace(
     177            array( get_template_directory_uri() . '/', get_stylesheet_directory_uri() . '/' ),
     178            '',
     179            twentyfifteen_fonts_url()
     180        );
     181        add_editor_style( array( 'css/editor-style.css', 'genericons/genericons.css', $font_stylesheet ) );
    176182
    177183        // Load regular editor styles into the new block-based editor.
     
    348354if ( ! function_exists( 'twentyfifteen_fonts_url' ) ) :
    349355    /**
    350      * Register Google fonts for Twenty Fifteen.
     356     * Register fonts for Twenty Fifteen.
    351357     *
    352358     * @since Twenty Fifteen 1.0
     359     * @since Twenty Fifteen 3.4 Replaced Google URL with self-hosted fonts.
    353360     *
    354      * @return string Google fonts URL for the theme.
     361     * @return string Fonts URL for the theme.
    355362     */
    356363    function twentyfifteen_fonts_url() {
    357364        $fonts_url = '';
    358365        $fonts     = array();
    359         $subsets   = 'latin,latin-ext';
    360366
    361367        /*
     
    364370         */
    365371        if ( 'off' !== _x( 'on', 'Noto Sans font: on or off', 'twentyfifteen' ) ) {
    366             $fonts[] = 'Noto Sans:400italic,700italic,400,700';
     372            $fonts[] = 'noto-sans';
    367373        }
    368374
     
    372378         */
    373379        if ( 'off' !== _x( 'on', 'Noto Serif font: on or off', 'twentyfifteen' ) ) {
    374             $fonts[] = 'Noto Serif:400italic,700italic,400,700';
     380            $fonts[] = 'noto-serif';
    375381        }
    376382
     
    380386         */
    381387        if ( 'off' !== _x( 'on', 'Inconsolata font: on or off', 'twentyfifteen' ) ) {
    382             $fonts[] = 'Inconsolata:400,700';
     388            $fonts[] = 'inconsolata';
    383389        }
    384390
    385         /*
    386          * translators: To add an additional character subset specific to your language,
    387          * translate this to 'greek', 'cyrillic', 'devanagari' or 'vietnamese'. Do not translate into your own language.
    388          */
    389         $subset = _x( 'no-subset', 'Add new subset (greek, cyrillic, devanagari, vietnamese)', 'twentyfifteen' );
    390 
    391         if ( 'cyrillic' === $subset ) {
    392             $subsets .= ',cyrillic,cyrillic-ext';
    393         } elseif ( 'greek' === $subset ) {
    394             $subsets .= ',greek,greek-ext';
    395         } elseif ( 'devanagari' === $subset ) {
    396             $subsets .= ',devanagari';
    397         } elseif ( 'vietnamese' === $subset ) {
    398             $subsets .= ',vietnamese';
    399         }
    400 
    401391        if ( $fonts ) {
    402             $fonts_url = add_query_arg(
    403                 array(
    404                     'family'  => urlencode( implode( '|', $fonts ) ),
    405                     'subset'  => urlencode( $subsets ),
    406                     'display' => urlencode( 'fallback' ),
    407                 ),
    408                 'https://fonts.googleapis.com/css'
    409             );
     392            $fonts_url = get_template_directory_uri() . '/assets/fonts/' . implode( '-plus-', $fonts ) . '.css';
    410393        }
    411394
     
    433416function twentyfifteen_scripts() {
    434417    // Add custom fonts, used in the main stylesheet.
    435     wp_enqueue_style( 'twentyfifteen-fonts', twentyfifteen_fonts_url(), array(), null );
     418    $font_version = ( 0 === strpos( (string) twentyfifteen_fonts_url(), get_template_directory_uri() . '/' ) ) ? '20230328' : null;
     419    wp_enqueue_style( 'twentyfifteen-fonts', twentyfifteen_fonts_url(), array(), $font_version );
    436420
    437421    // Add Genericons, used in the main stylesheet.
     
    483467    wp_enqueue_style( 'twentyfifteen-block-editor-style', get_template_directory_uri() . '/css/editor-blocks.css', array(), '20220908' );
    484468    // Add custom fonts.
    485     wp_enqueue_style( 'twentyfifteen-fonts', twentyfifteen_fonts_url(), array(), null );
     469    $font_version = ( 0 === strpos( (string) twentyfifteen_fonts_url(), get_template_directory_uri() . '/' ) ) ? '20230328' : null;
     470    wp_enqueue_style( 'twentyfifteen-fonts', twentyfifteen_fonts_url(), array(), $font_version );
    486471}
    487472add_action( 'enqueue_block_editor_assets', 'twentyfifteen_block_editor_styles' );
     
    492477 *
    493478 * @since Twenty Fifteen 1.7
     479 * @deprecated Twenty Fifteen 3.4 Disabled filter because, by default, fonts are self-hosted.
    494480 *
    495481 * @param array   $urls          URLs to print for resource hints.
     
    511497    return $urls;
    512498}
    513 add_filter( 'wp_resource_hints', 'twentyfifteen_resource_hints', 10, 2 );
     499// add_filter( 'wp_resource_hints', 'twentyfifteen_resource_hints', 10, 2 );
    514500
    515501/**
  • trunk/src/wp-content/themes/twentyfifteen/readme.txt

    r55024 r55268  
    5353License: GNU GPL, Version 2 (or later)
    5454Source: http://www.genericons.com
     55
     56Noto Sans Font
     57Copyright 2015-2021 Google LLC. All Rights Reserved.
     58License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1
     59Source: https://fontsource.org/fonts/noto-sans
     60
     61Noto Serif Font
     62Copyright 2012 Google Inc. All Rights Reserved.
     63License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1
     64Source: https://fontsource.org/fonts/noto-serif
     65
     66Inconsolata Font
     67Copyright 2006 The Inconsolata Project Authors (https://github.com/cyrealtype/Inconsolata)
     68License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1
     69Source: https://fontsource.org/fonts/inconsolata
    5570
    5671Block Pattern Images
Note: See TracChangeset for help on using the changeset viewer.