PluginProbe
Gutenify – Visual Site Builder Blocks & Starter Templates / 1.0.6
Gutenify – Visual Site Builder Blocks & Starter Templates v1.0.6
1.9.0 1.8.0 1.7.0 1.6.6 1.6.5 1.6.4 trunk 0.0.1 0.0.2 0.0.3 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 All 74 releases
gutenify / inc / typography-helpers.php

typography-helpers.php in Gutenify – Visual Site Builder Blocks & Starter Templates 1.0.6, at inc/typography-helpers.php

342 lines 8.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 function gutenify_font_families() {
3 $font_families = array(
4 array(
5 'fontFamily' => '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif',
6 'name' => 'System Font',
7 'slug' => 'system',
8 ),
9 array(
10 'fontFamily' => '"Allan", sans-serif',
11 'name' => 'Allan',
12 'slug' => 'allan',
13 ),
14 array(
15 'fontFamily' => '"Allerta", sans-serif',
16 'name' => 'Allerta',
17 'slug' => 'allerta',
18 ),
19 array(
20 'fontFamily' => '"Amaranth", sans-serif',
21 'name' => 'Amaranth',
22 'slug' => 'amaranth',
23 ),
24 array(
25 'fontFamily' => "'Amatic SC', cursive",
26 'name' => 'Amatic SC',
27 'slug' => 'amatic-sc',
28 ),
29 array(
30 'fontFamily' => '"Bitter", sans-serif',
31 'name' => 'Bitter',
32 'slug' => 'bitter',
33 ),
34 array(
35 'fontFamily' => '"Cabin", sans-serif',
36 'name' => 'Cabin',
37 'slug' => 'cabin',
38 ),
39 array(
40 'fontFamily' => '"Cantarell", sans-serif',
41 'name' => 'Cantarell',
42 'slug' => 'cantarell',
43 ),
44 array(
45 'fontFamily' => '"Cuprum", sans-serif',
46 'name' => 'Cuprum',
47 'slug' => 'cuprum',
48 ),
49 array(
50 'fontFamily' => "'Dancing Script', cursive",
51 'name' => 'Dancing Script',
52 'slug' => 'dancing-script',
53 ),
54 array(
55 'fontFamily' => '"Exo", sans-serif',
56 'name' => 'Exo',
57 'slug' => 'exo',
58 ),
59 array(
60 'fontFamily' => '"Exo 2", sans-serif',
61 'name' => 'Exo 2',
62 'slug' => 'exo-2',
63 ),
64 array(
65 'fontFamily' => '"Heebo", sans-serif',
66 'name' => 'Heebo',
67 'slug' => 'heebo',
68 ),
69 array(
70 'fontFamily' => '"Istok Web", sans-serif',
71 'name' => 'Istok Web',
72 'slug' => 'istok-web',
73 ),
74 array(
75 'fontFamily' => '"Josefin Sans", sans-serif',
76 'name' => 'Josefin Sans',
77 'slug' => 'josefin-sans',
78 ),
79 array(
80 'fontFamily' => '"Lobster", sans-serif',
81 'name' => 'Lobster',
82 'slug' => 'lobster',
83 ),
84 array(
85 'fontFamily' => '"Lora", serif',
86 'name' => 'Lora',
87 'slug' => 'lora',
88 ),
89 array(
90 'fontFamily' => '"Mrs Saint Delafield", cursive',
91 'name' => 'Mrs Saint Delafield',
92 'slug' => 'mrs-saint-delafield',
93 ),
94 array(
95 'fontFamily' => '"Merriweather", serif',
96 'name' => 'Merriweather',
97 'slug' => 'merriweather',
98 ),
99 array(
100 'fontFamily' => '"Montserrat", sans-serif',
101 'name' => 'Montserrat',
102 'slug' => 'montserrat',
103 ),
104 array(
105 'fontFamily' => '"Nobile", sans-serif',
106 'name' => 'Nobile',
107 'slug' => 'mobile',
108 ),
109 array(
110 'fontFamily' => '"Noto Sans", sans-serif',
111 'name' => 'Noto Sans',
112 'slug' => 'noto-sans',
113 ),
114 array(
115 'fontFamily' => '"Noto Serif", serif',
116 'name' => 'Noto Serif',
117 'slug' => 'noto-serif',
118 ),
119 array(
120 'fontFamily' => '"Neuton", serif',
121 'name' => 'Neuton',
122 'slug' => 'neuton',
123 ),
124 array(
125 'fontFamily' => '"Open Sans", sans-serif',
126 'name' => 'Open Sans',
127 'slug' => 'open-sans',
128 ),
129 array(
130 'fontFamily' => '"Oswald", sans-serif',
131 'name' => 'Oswald',
132 'slug' => 'oswald',
133 ),
134 array(
135 'fontFamily' => '"Patua One", sans-serif',
136 'name' => 'Patua One',
137 'slug' => 'patua-one',
138 ),
139 array(
140 'fontFamily' => '"Playfair Display", sans-serif',
141 'name' => 'Playfair Display',
142 'slug' => 'playfair-display',
143 ),
144 array(
145 'fontFamily' => '"PT Sans", sans-serif',
146 'name' => 'PT Sans',
147 'slug' => 'pt-sans',
148 ),
149 array(
150 'fontFamily' => '"PT Serif", serif',
151 'name' => 'PT Serif',
152 'slug' => 'pt-serif',
153 ),
154 array(
155 'fontFamily' => '"Quattrocento Sans", sans-serif',
156 'name' => 'Quattrocento Sans',
157 'slug' => 'quattrocento-sans',
158 ),
159 array(
160 'fontFamily' => '"Barlow", sans-serif',
161 'name' => 'Barlow',
162 'slug' => 'barlow',
163 ),
164 array(
165 'fontFamily' => '"Rubik", sans-serif',
166 'name' => 'Rubik',
167 'slug' => 'rubik',
168 ),
169 array(
170 'fontFamily' => '"Ubuntu", sans-serif',
171 'name' => 'Ubuntu',
172 'slug' => 'ubuntu',
173 ),
174 array(
175 'fontFamily' => '"Varela", sans-serif',
176 'name' => 'Varela',
177 'slug' => 'varela',
178 ),
179 array(
180 'fontFamily' => '"Varela Round", sans-serif',
181 'name' => 'Varela Round',
182 'slug' => 'varela-round',
183 ),
184 array(
185 'fontFamily' => '"Yanone Kaffeesatz", sans-serif',
186 'name' => 'Yanone Kaffeesatz',
187 'slug' => 'yanone-kaffeesatz',
188 ),
189 array(
190 'fontFamily' => '"Khula", sans-serif',
191 'name' => 'Khula',
192 'slug' => 'khula',
193 ),
194 array(
195 'fontFamily' => '"Source Serif Pro", serif',
196 'name' => 'Source Serif Pro',
197 'slug' => 'source-serif-pro',
198 ),
199 array(
200 'fontFamily' => '"Gilda Display", serif',
201 'name' => 'Gilda Display',
202 'slug' => 'gilda-display',
203 ),
204 array(
205 'fontFamily' => '"Nunito Sans", sans-serif',
206 'name' => 'Nunito Sans',
207 'slug' => 'nunito-sans',
208 ),
209 array(
210 'fontFamily' => '\'Lato\', sans-serif',
211 'name' => 'Lato Sans Serif',
212 'slug' => 'lato-sans-serif',
213 ),
214 array(
215 'fontFamily' => '\'Roboto\', sans-serif',
216 'name' => 'Roboto',
217 'slug' => 'roboto-sans-serif',
218 ),
219 array(
220 'fontFamily' => '\'Roboto Condensed\', sans-serif',
221 'name' => 'Roboto Condensed Sans Serif',
222 'slug' => 'roboto-condensed-sans-serif',
223 ),
224 array(
225 'fontFamily' => '\'Roboto Slab\', sans-serif',
226 'name' => 'Roboto Slab Sans Serif',
227 'slug' => 'roboto-slab-sans-serif',
228 ),
229 array(
230 'fontFamily' => '\'Poppins\', sans-serif',
231 'name' => 'Poppins',
232 'slug' => 'poppins-sans-serif',
233 ),
234 array(
235 'fontFamily' => '\'Inter\', sans-serif',
236 'name' => 'Inter Sans Serif',
237 'slug' => 'inter-sans-serif',
238 ),
239 array(
240 'fontFamily' => "'Hurricane', cursive",
241 'name' => 'Hurricane',
242 'slug' => 'hurricane-cursive',
243 ),
244 array(
245 'fontFamily' => "'Palette Mosaic', cursive",
246 'name' => 'Palette Mosaic',
247 'slug' => 'palette-mosaic-cursive',
248 ),
249 array(
250 'fontFamily' => "'Jost', sans-serif",
251 'name' => 'Jost',
252 'slug' => 'jost',
253 ),
254 array(
255 'fontFamily' => "'Manrope', sans-serif",
256 'name' => 'Manrope',
257 'slug' => 'manrope',
258 ),
259 array(
260 'fontFamily' => "'Source Sans Pro', sans-serif",
261 'name' => 'Source Sans Pro',
262 'slug' => 'source-sans-pro',
263 ),
264 array(
265 'fontFamily' => "'Saira', sans-serif",
266 'name' => 'Saira',
267 'slug' => 'saira',
268 ),
269 array(
270 'fontFamily' => "'Roboto Flex', sans-serif",
271 'name' => 'Roboto Flex',
272 'slug' => 'roboto-flex',
273 ),
274 array(
275 'fontFamily' => "'Hind Madurai', sans-serif",
276 'name' => 'Hind Madurai',
277 'slug' => 'hind-madurai',
278 ),
279 );
280 return $font_families;
281 }
282
283 function gutenify_get_global_style_fonts( array $arr ) {
284 $result = array();
285 if ( ! empty( $arr ) ) {
286 foreach ( $arr as $key => $style ) {
287 if ( 'fontFamily' === $key ) {
288 $result[] = $style;
289 }
290 if ( is_array( $style ) ) {
291 $result = array_merge( $result, gutenify_get_global_style_fonts( $style ) );
292 }
293 }
294 }
295 return $result;
296 }
297
298 /**
299 * Add Google webfonts
300 *
301 * @return $fonts_url
302 */
303 function gutenify_fonts_url() {
304 $global_styles = wp_get_global_styles();
305 $font_families = gutenify_font_families();
306 $selected_font_families = array();
307
308 $global_style_fonts = gutenify_get_global_style_fonts( $global_styles );
309 $global_fonts = array();
310 if ( ! empty( $global_style_fonts ) ) {
311 foreach ( $global_style_fonts as $font ) {
312 $font = str_replace( ')', '', $font );
313 $global_fonts[] = str_replace( 'var(--wp--preset--font-family--', '', $font );
314 }
315 }
316
317 $gutenify_site_options = get_option( 'gutenify_site_options' );
318 if ( ! empty( $font_families ) ) {
319 foreach ( $font_families as $family ) {
320 if ( ! empty( $gutenify_site_options['styles']['typography']['fontFamilySlug'] ) && $gutenify_site_options['styles']['typography']['fontFamilySlug'] === $family['slug'] ) {
321 $selected_font_families[] = 'family=' . $family['name'];
322 }
323 if ( ! empty( $gutenify_site_options['styles']['elements']['headings']['typography']['fontFamilySlug'] ) && $gutenify_site_options['styles']['elements']['headings']['typography']['fontFamilySlug'] === $family['slug'] ) {
324 $selected_font_families[] = 'family=' . $family['name'];
325 }
326 if ( in_array( $family['slug'], $global_fonts ) ) {
327 $selected_font_families[] = 'family=' . $family['name'];
328 }
329 }
330 }
331 // echo '<pre>';
332 // print_r( $selected_font_families );
333 // echo '</pre>';
334
335 if ( empty( $selected_font_families ) ) {
336 return '';
337 }
338
339 // Make a single request for the theme or user fonts.
340 return esc_url_raw( 'https://fonts.googleapis.com/css2?' . implode( '&', array_unique( $selected_font_families ) ) . '&display=swap' );
341 }
342