PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 12.5
Jetpack – WP Security, Backup, Speed, & Growth v12.5
16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 14.3.1 All 501 releases
jetpack / modules / google-fonts.php

google-fonts.php in Jetpack – WP Security, Backup, Speed, & Growth 12.5, at modules/google-fonts.php

143 lines 3.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Module Name: Google Fonts (Beta)
4 * Module Description: A selection of Google fonts for block enabled themes. This feature is still being developed.
5 * Sort Order: 1
6 * Recommendation Order: 2
7 * First Introduced: 10.8.0
8 * Requires Connection: No
9 * Auto Activate: No
10 * Module Tags: Fonts, Recommended
11 * Feature: Writing
12 * Additional Search Queries: fonts, webfonts, typography
13 *
14 * @package automattic/jetpack
15 */
16
17 /**
18 * Curated list of Google Fonts
19 * See https://wp.me/p9Jlb4-22P
20 */
21 const JETPACK_GOOGLE_FONTS_LIST = array(
22 'Albert Sans',
23 'Alegreya',
24 'Arvo',
25 'Bodoni Moda',
26 'Cabin',
27 'Chivo',
28 'Commissioner',
29 'Cormorant',
30 'Courier Prime',
31 'Crimson Pro',
32 'DM Mono',
33 'DM Sans',
34 'Domine',
35 'EB Garamond',
36 'Epilogue',
37 'Figtree',
38 'Fira Sans',
39 'Fraunces',
40 'IBM Plex Mono',
41 'IBM Plex Sans',
42 'Inter',
43 'Josefin Sans',
44 'Jost',
45 'Libre Baskerville',
46 'Libre Franklin',
47 'Literata',
48 'Lora',
49 'Merriweather',
50 'Montserrat',
51 'Newsreader',
52 'Nunito',
53 'Open Sans',
54 'Overpass',
55 'Petrona',
56 'Piazzolla',
57 'Playfair Display',
58 'Plus Jakarta Sans',
59 'Poppins',
60 'Raleway',
61 'Roboto Slab',
62 'Roboto',
63 'Rubik',
64 'Sora',
65 'Source Sans Pro',
66 'Source Serif Pro',
67 'Space Mono',
68 'Texturina',
69 'Work Sans',
70 );
71
72 /**
73 * Register a curated selection of Google Fonts.
74 *
75 * @return void
76 */
77 function jetpack_add_google_fonts_provider() {
78 if ( ! function_exists( 'wp_register_webfont_provider' ) || ! function_exists( 'wp_register_webfonts' ) ) {
79 return;
80 }
81
82 wp_register_webfont_provider( 'jetpack-google-fonts', '\Automattic\Jetpack\Fonts\Google_Fonts_Provider' );
83
84 /**
85 * Curated list of Google Fonts.
86 *
87 * @module google-fonts
88 *
89 * @since 10.8
90 *
91 * @param array $fonts_to_register Array of Google Font names to register.
92 */
93 $fonts_to_register = apply_filters( 'jetpack_google_fonts_list', JETPACK_GOOGLE_FONTS_LIST );
94
95 foreach ( $fonts_to_register as $font_family ) {
96 $fonts = array();
97
98 $font_italic = array(
99 'font-family' => $font_family,
100 'font-weight' => '100 900',
101 'font-style' => 'normal',
102 'font-display' => 'fallback',
103 'provider' => 'jetpack-google-fonts',
104 );
105
106 $font_normal = array(
107 'font-family' => $font_family,
108 'font-weight' => '100 900',
109 'font-style' => 'italic',
110 'font-display' => 'fallback',
111 'provider' => 'jetpack-google-fonts',
112 );
113
114 // New WP Fonts API format since Gutenberg 14.9 requires keyed array
115 // See https://github.com/Automattic/jetpack/issues/28063
116 // Remove conditional once WP 6.2 is the minimum version (must confirm this made it into 6.2)
117 if ( class_exists( 'WP_Fonts' ) ) {
118 $fonts = array(
119 $font_family => array( $font_normal, $font_italic ),
120 );
121 } elseif ( class_exists( 'WP_Webfonts' ) ) {
122 $fonts = array( $font_normal, $font_italic );
123 }
124
125 // New fonts register function since Gutenberg 15.0 or 15.1
126 // See https://github.com/Automattic/jetpack/issues/28063#issuecomment-1387090575
127 // Remove conditional once WP 6.2 is the minimum version (must confirm this made it into 6.2)
128 if ( function_exists( 'wp_register_fonts' ) ) {
129 wp_register_fonts( $fonts );
130 } else {
131 wp_register_webfonts( $fonts );
132 }
133 }
134 }
135 add_action( 'after_setup_theme', 'jetpack_add_google_fonts_provider' );
136
137 add_filter( 'wp_resource_hints', '\Automattic\Jetpack\Fonts\Utils::font_source_resource_hint', 10, 2 );
138 add_filter( 'pre_render_block', '\Automattic\Jetpack\Fonts\Introspectors\Blocks::enqueue_block_fonts', 10, 2 );
139 // The priority for the next hook is is set to 22 because it needs to run after Gutenberg's
140 // re-registration (at priority 22) of the core blocks it de-registers (at the default priority 10),
141 // otherwise Gutenberg caches an incorrect state.
142 add_action( 'init', '\Automattic\Jetpack\Fonts\Introspectors\Global_Styles::enqueue_global_styles_fonts', 22 );
143