WordPress/wp-content/themes/twentytwentytwo/functions.php
jffng ef4271cfee Twenty Twenty-Two: Sync updates from GitHub.
This commit syncs minor changes for the default theme from its active development repository to core. 

This is a follow up to [52081], [52107], [52164], [52222], and [52283]. It reduces the size of a video asset, renames the templates and template parts directories, and adds CSS for button hover states. To view the full set of changes, visit 1a121e0224...da994d1fe5.

Props kjellr, mburridge, sabernhardt, hellofromtonya, scruffian.
See #54318.

Built from https://develop.svn.wordpress.org/trunk@52335


git-svn-id: http://core.svn.wordpress.org/trunk@51927 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-12-07 16:38:02 +00:00

150 lines
3.4 KiB
PHP

<?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.
wp_register_style(
'twentytwentytwo-style',
get_template_directory_uri() . '/style.css',
array(),
wp_get_theme()->get( 'Version' )
);
// 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';