diff options
Diffstat (limited to 'wp-content/themes/twentytwentyfour/functions.php')
-rw-r--r-- | wp-content/themes/twentytwentyfour/functions.php | 206 |
1 files changed, 206 insertions, 0 deletions
diff --git a/wp-content/themes/twentytwentyfour/functions.php b/wp-content/themes/twentytwentyfour/functions.php new file mode 100644 index 0000000..baee062 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/functions.php @@ -0,0 +1,206 @@ +<?php +/** + * Twenty Twenty-Four functions and definitions + * + * @link https://developer.wordpress.org/themes/basics/theme-functions/ + * + * @package Twenty Twenty-Four + * @since Twenty Twenty-Four 1.0 + */ + +/** + * Register block styles. + */ + +if ( ! function_exists( 'twentytwentyfour_block_styles' ) ) : + /** + * Register custom block styles + * + * @since Twenty Twenty-Four 1.0 + * @return void + */ + function twentytwentyfour_block_styles() { + + register_block_style( + 'core/details', + array( + 'name' => 'arrow-icon-details', + 'label' => __( 'Arrow icon', 'twentytwentyfour' ), + /* + * Styles for the custom Arrow icon style of the Details block + */ + 'inline_style' => ' + .is-style-arrow-icon-details { + padding-top: var(--wp--preset--spacing--10); + padding-bottom: var(--wp--preset--spacing--10); + } + + .is-style-arrow-icon-details summary { + list-style-type: "\2193\00a0\00a0\00a0"; + } + + .is-style-arrow-icon-details[open]>summary { + list-style-type: "\2192\00a0\00a0\00a0"; + }', + ) + ); + register_block_style( + 'core/post-terms', + array( + 'name' => 'pill', + 'label' => __( 'Pill', 'twentytwentyfour' ), + /* + * Styles variation for post terms + * https://github.com/WordPress/gutenberg/issues/24956 + */ + 'inline_style' => ' + .is-style-pill a, + .is-style-pill span:not([class], [data-rich-text-placeholder]) { + display: inline-block; + background-color: var(--wp--preset--color--base-2); + padding: 0.375rem 0.875rem; + border-radius: var(--wp--preset--spacing--20); + } + + .is-style-pill a:hover { + background-color: var(--wp--preset--color--contrast-3); + }', + ) + ); + register_block_style( + 'core/list', + array( + 'name' => 'checkmark-list', + 'label' => __( 'Checkmark', 'twentytwentyfour' ), + /* + * Styles for the custom checkmark list block style + * https://github.com/WordPress/gutenberg/issues/51480 + */ + 'inline_style' => ' + ul.is-style-checkmark-list { + list-style-type: "\2713"; + } + + ul.is-style-checkmark-list li { + padding-inline-start: 1ch; + }', + ) + ); + register_block_style( + 'core/navigation-link', + array( + 'name' => 'arrow-link', + 'label' => __( 'With arrow', 'twentytwentyfour' ), + /* + * Styles for the custom arrow nav link block style + */ + 'inline_style' => ' + .is-style-arrow-link .wp-block-navigation-item__label:after { + content: "\2197"; + padding-inline-start: 0.25rem; + vertical-align: middle; + text-decoration: none; + display: inline-block; + }', + ) + ); + register_block_style( + 'core/heading', + array( + 'name' => 'asterisk', + 'label' => __( 'With asterisk', 'twentytwentyfour' ), + 'inline_style' => " + .is-style-asterisk:before { + content: ''; + width: 1.5rem; + height: 3rem; + background: var(--wp--preset--color--contrast-2, currentColor); + clip-path: path('M11.93.684v8.039l5.633-5.633 1.216 1.23-5.66 5.66h8.04v1.737H13.2l5.701 5.701-1.23 1.23-5.742-5.742V21h-1.737v-8.094l-5.77 5.77-1.23-1.217 5.743-5.742H.842V9.98h8.162l-5.701-5.7 1.23-1.231 5.66 5.66V.684h1.737Z'); + display: block; + } + + /* Hide the asterisk if the heading has no content, to avoid using empty headings to display the asterisk only, which is an A11Y issue */ + .is-style-asterisk:empty:before { + content: none; + } + + .is-style-asterisk:-moz-only-whitespace:before { + content: none; + } + + .is-style-asterisk.has-text-align-center:before { + margin: 0 auto; + } + + .is-style-asterisk.has-text-align-right:before { + margin-left: auto; + } + + .rtl .is-style-asterisk.has-text-align-left:before { + margin-right: auto; + }", + ) + ); + } +endif; + +add_action( 'init', 'twentytwentyfour_block_styles' ); + +/** + * Enqueue block stylesheets. + */ + +if ( ! function_exists( 'twentytwentyfour_block_stylesheets' ) ) : + /** + * Enqueue custom block stylesheets + * + * @since Twenty Twenty-Four 1.0 + * @return void + */ + function twentytwentyfour_block_stylesheets() { + /** + * The wp_enqueue_block_style() function allows us to enqueue a stylesheet + * for a specific block. These will only get loaded when the block is rendered + * (both in the editor and on the front end), improving performance + * and reducing the amount of data requested by visitors. + * + * See https://make.wordpress.org/core/2021/12/15/using-multiple-stylesheets-per-block/ for more info. + */ + wp_enqueue_block_style( + 'core/button', + array( + 'handle' => 'twentytwentyfour-button-style-outline', + 'src' => get_parent_theme_file_uri( 'assets/css/button-outline.css' ), + 'ver' => wp_get_theme( get_template() )->get( 'Version' ), + 'path' => get_parent_theme_file_path( 'assets/css/button-outline.css' ), + ) + ); + } +endif; + +add_action( 'init', 'twentytwentyfour_block_stylesheets' ); + +/** + * Register pattern categories. + */ + +if ( ! function_exists( 'twentytwentyfour_pattern_categories' ) ) : + /** + * Register pattern categories + * + * @since Twenty Twenty-Four 1.0 + * @return void + */ + function twentytwentyfour_pattern_categories() { + + register_block_pattern_category( + 'page', + array( + 'label' => _x( 'Pages', 'Block pattern category', 'twentytwentyfour' ), + 'description' => __( 'A collection of full page layouts.', 'twentytwentyfour' ), + ) + ); + } +endif; + +add_action( 'init', 'twentytwentyfour_pattern_categories' ); |