-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfunctions.php
executable file
·167 lines (127 loc) · 4.64 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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
<?php
/**
* TT2 Gopher functions and definitions
*
* @link https://developer.wordpress.org/themes/basics/theme-functions/
*
* @package WordPress
* @subpackage TT2 Gopher
* @since TT2 Gopher 0.1.0
*/
if ( ! function_exists( 'tt2gopher_support' ) ) :
/**
* Sets up theme defaults and registers support for various WordPress features.
*/
function tt2gopher_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', 'tt2gopher_support' );
if ( ! function_exists( 'tt2gopher_styles' ) ) :
/**
* Enqueue styles.
*/
function tt2gopher_styles() {
// Register theme stylesheet.
$theme_version = wp_get_theme()->get( 'Version' );
$version_string = is_string( $theme_version ) ? $theme_version : false;
wp_register_style(
'tt2gopher-style',
get_template_directory_uri() . '/style.css',
array(),
$version_string
);
// Add styles inline.
wp_add_inline_style( 'tt2gopher-style', tt2gopher_get_font_face_styles() );
// Enqueue theme stylesheet.
wp_enqueue_style( 'tt2gopher-style' );
}
endif;
add_action( 'wp_enqueue_scripts', 'tt2gopher_styles' );
if ( ! function_exists( 'tt2gopher_editor_styles' ) ) :
/**
* Enqueue editor styles.
*
* @since Twenty Twenty-Two 1.0
*
* @return void
*/
function tt2gopher_editor_styles() {
// Add styles inline.
wp_add_inline_style( 'wp-block-library', tt2gopher_get_font_face_styles() );
}
endif;
add_action( 'admin_init', 'tt2gopher_editor_styles' );
if ( ! function_exists( 'tt2gopher_get_font_face_styles' ) ) :
/**
* Get font face styles.
* Called by functions tt2gopher_styles() and tt2gopher_editor_styles() above.
*/
function tt2gopher_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/sourceSerif/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/sourceSerif/SourceSerif4Variable-Italic.ttf.woff2' ) . "') format('woff2');
}
";
}
endif;
if ( ! function_exists( 'tt2gopher_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.
*/
function tt2gopher_preload_webfonts() {
?>
<link rel="preload" href="<?php echo esc_url( get_theme_file_uri( 'assets/fonts/sourceSerif/PublicSans-VariableFont_wght.ttf.woff2' ) ); ?>" as="font" type="font/woff2" crossorigin>
<?php
}
endif;
add_action( 'wp_head', 'tt2gopher_preload_webfonts' );
/**
* Registers block categories, and type.
*
* https://github.com/Automattic/themes/blob/trunk/archeo/functions.php
*/
function tt2gopher_register_block_pattern_categories() {
$block_pattern_categories = array(
'tt2gopher-images' => array( 'label' => __( 'TT2 Gopher - Images', 'tt2gopher' ) ),
'tt2gopher-header' => array( 'label' => __( 'TT2 Gopher - Headers', 'tt2gopher' ) ),
'tt2gopher-footer' => array( 'label' => __( 'TT2 Gopher - Footers', 'tt2gopher' ) ),
'tt2gopher-featured' => array( 'label' => __( 'TT2 Gopher - Featured', 'tt2gopher' ) ),
'tt2gopher-post' => array( 'label' => __( 'TT2 Gopher - Post', 'tt2gopher' ) ),
'tt2gopher-page' => array( 'label' => __( 'TT2 Gopher - Page', 'tt2gopher' ) ),
'tt2gopher-query' => array( 'label' => __( 'TT2 Gopher - Query', 'tt2gopher' ) ),
);
/**
* Filters the theme block pattern categories.
*/
$block_pattern_categories = apply_filters( 'tt2gopher_block_pattern_categories', $block_pattern_categories );
foreach ( $block_pattern_categories as $name => $properties ) {
if ( ! WP_Block_Pattern_Categories_Registry::get_instance()->is_registered( $name ) ) {
register_block_pattern_category( $name, $properties );
}
}
}
add_action( 'init', 'tt2gopher_register_block_pattern_categories', 9 );
// Add block styles
require get_template_directory() . '/inc/block-styles.php';