This repository has been archived by the owner on Jan 26, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 92
/
functions.php
151 lines (117 loc) · 3.55 KB
/
functions.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<?php
/**
* Twenty Twenty-Two functions and definitions
*
* @link https://developer.wordpress.org/themes/basics/theme-functions/
*
* @package WordPress
* @subpackage Twenty_Twenty_Two
* @since Twenty Twenty-Two 1.0
*/
if ( ! function_exists( 'twentytwentytwo_support' ) ) :
/**
* Sets up theme defaults and registers support for various WordPress features.
*
* @since Twenty Twenty-Two 1.0
*
* @return void
*/
function twentytwentytwo_support() {
// Add support for block styles.
add_theme_support( 'wp-block-styles' );
// Enqueue editor styles.
add_editor_style( 'style.css' );
}
endif;
add_action( 'after_setup_theme', 'twentytwentytwo_support' );
if ( ! function_exists( 'twentytwentytwo_styles' ) ) :
/**
* Enqueue styles.
*
* @since Twenty Twenty-Two 1.0
*
* @return void
*/
function twentytwentytwo_styles() {
// Register theme stylesheet.
$theme_version = wp_get_theme()->get( 'Version' );
$version_string = is_string( $theme_version ) ? $theme_version : false;
wp_register_style(
'twentytwentytwo-style',
get_template_directory_uri() . '/style.css',
array(),
$version_string
);
// Add styles inline.
wp_add_inline_style( 'twentytwentytwo-style', twentytwentytwo_get_font_face_styles() );
// Enqueue theme stylesheet.
wp_enqueue_style( 'twentytwentytwo-style' );
}
endif;
add_action( 'wp_enqueue_scripts', 'twentytwentytwo_styles' );
if ( ! function_exists( 'twentytwentytwo_editor_styles' ) ) :
/**
* Enqueue editor styles.
*
* @since Twenty Twenty-Two 1.0
*
* @return void
*/
function twentytwentytwo_editor_styles() {
// Add styles inline.
wp_add_inline_style( 'wp-block-library', twentytwentytwo_get_font_face_styles() );
}
endif;
add_action( 'admin_init', 'twentytwentytwo_editor_styles' );
if ( ! function_exists( 'twentytwentytwo_get_font_face_styles' ) ) :
/**
* Get font face styles.
* Called by functions twentytwentytwo_styles() and twentytwentytwo_editor_styles() above.
*
* @since Twenty Twenty-Two 1.0
*
* @return string
*/
function twentytwentytwo_get_font_face_styles() {
return "
@font-face{
font-family: 'Source Serif Pro';
font-weight: 200 900;
font-style: normal;
font-stretch: normal;
font-display: swap;
src: url('" . get_theme_file_uri( 'assets/fonts/SourceSerif4Variable-Roman.ttf.woff2' ) . "') format('woff2');
}
@font-face{
font-family: 'Source Serif Pro';
font-weight: 200 900;
font-style: italic;
font-stretch: normal;
font-display: swap;
src: url('" . get_theme_file_uri( 'assets/fonts/SourceSerif4Variable-Italic.ttf.woff2' ) . "') format('woff2');
}
";
}
endif;
if ( ! function_exists( 'twentytwentytwo_preload_webfonts' ) ) :
/**
* Preloads the main web font to improve performance.
*
* Only the main web font (font-style: normal) is preloaded here since that font is always relevant (it is used
* on every heading, for example). The other font is only needed if there is any applicable content in italic style,
* and therefore preloading it would in most cases regress performance when that font would otherwise not be loaded
* at all.
*
* @since Twenty Twenty-Two 1.0
*
* @return void
*/
function twentytwentytwo_preload_webfonts() {
?>
<link rel="preload" href="<?php echo esc_url( get_theme_file_uri( 'assets/fonts/SourceSerif4Variable-Roman.ttf.woff2' ) ); ?>" as="font" type="font/woff2" crossorigin>
<?php
}
endif;
add_action( 'wp_head', 'twentytwentytwo_preload_webfonts' );
// Add block patterns
require get_template_directory() . '/inc/block-patterns.php';