PluginProbe
Gutenify – Visual Site Builder Blocks & Starter Templates / 1.0.5
Gutenify – Visual Site Builder Blocks & Starter Templates v1.0.5
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.5, at inc/typography-helpers.php

322 lines 8.4 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 );
260 return $font_families;
261 }
262
263 function gutenify_get_global_style_fonts( array $arr ) {
264 $result = array();
265 if ( ! empty( $arr ) ) {
266 foreach ( $arr as $key => $style ) {
267 if ( 'fontFamily' === $key ) {
268 $result[] = $style;
269 }
270 if ( is_array( $style ) ) {
271 $result = array_merge( $result, gutenify_get_global_style_fonts( $style ) );
272 }
273 }
274 }
275 return $result;
276 }
277
278 /**
279 * Add Google webfonts
280 *
281 * @return $fonts_url
282 */
283 function gutenify_fonts_url() {
284 $global_styles = wp_get_global_styles();
285 $font_families = gutenify_font_families();
286 $selected_font_families = array();
287
288 $global_style_fonts = gutenify_get_global_style_fonts( $global_styles );
289 $global_fonts = array();
290 if ( ! empty( $global_style_fonts ) ) {
291 foreach ( $global_style_fonts as $font ) {
292 $font = str_replace( ')', '', $font );
293 $global_fonts[] = str_replace( 'var(--wp--preset--font-family--', '', $font );
294 }
295 }
296
297 $gutenify_site_options = get_option( 'gutenify_site_options' );
298 if ( ! empty( $font_families ) ) {
299 foreach ( $font_families as $family ) {
300 if ( ! empty( $gutenify_site_options['styles']['typography']['fontFamilySlug'] ) && $gutenify_site_options['styles']['typography']['fontFamilySlug'] === $family['slug'] ) {
301 $selected_font_families[] = 'family=' . $family['name'];
302 }
303 if ( ! empty( $gutenify_site_options['styles']['elements']['headings']['typography']['fontFamilySlug'] ) && $gutenify_site_options['styles']['elements']['headings']['typography']['fontFamilySlug'] === $family['slug'] ) {
304 $selected_font_families[] = 'family=' . $family['name'];
305 }
306 if ( in_array( $family['slug'], $global_fonts ) ) {
307 $selected_font_families[] = 'family=' . $family['name'];
308 }
309 }
310 }
311 // echo '<pre>';
312 // print_r( $selected_font_families );
313 // echo '</pre>';
314
315 if ( empty( $selected_font_families ) ) {
316 return '';
317 }
318
319 // Make a single request for the theme or user fonts.
320 return esc_url_raw( 'https://fonts.googleapis.com/css2?' . implode( '&', array_unique( $selected_font_families ) ) . '&display=swap' );
321 }
322