themes-wordpress/assembler/functions.php
2024-02-02 19:53:17 +07:00

99 lines
2.4 KiB
PHP

<?php
/**
* Assembler functions and definitions
*
* @link https://developer.wordpress.org/themes/basics/theme-functions/
*
* @package Assembler
* @since Assembler 1.0
*/
declare( strict_types = 1 );
if ( ! function_exists( 'assembler_unregister_patterns' ) ) :
/**
* Unregister Jetpack patterns and core patterns bundled in WordPress.
*/
function assembler_unregister_patterns() {
$pattern_names = array(
// Jetpack form patterns.
'contact-form',
'newsletter-form',
'rsvp-form',
'registration-form',
'appointment-form',
'feedback-form',
// Patterns bundled in WordPress core.
// These would be removed by remove_theme_support( 'core-block-patterns' )
// if it's called on the init action with priority 9 from a plugin, not from a theme.
'core/query-standard-posts',
'core/query-medium-posts',
'core/query-small-posts',
'core/query-grid-posts',
'core/query-large-title-posts',
'core/query-offset-posts',
'core/social-links-shared-background-color',
);
foreach ( $pattern_names as $pattern_name ) {
$pattern = \WP_Block_Patterns_Registry::get_instance()->get_registered( $pattern_name );
if ( $pattern ) {
unregister_block_pattern( $pattern_name );
}
}
}
endif;
if ( ! function_exists( 'assembler_setup' ) ) :
/**
* Sets up theme defaults and registers support for various WordPress features.
*
* @since Assembler 1.0
*
* @return void
*/
function assembler_setup() {
// Enqueue editor styles.
add_editor_style( 'style.css' );
// Unregister Jetpack form patterns and core patterns bundled in WordPress.
// Simple sites
assembler_unregister_patterns();
add_filter( 'wp_loaded', function () {
// Atomic sites
assembler_unregister_patterns();
} );
// Remove theme support for the core and featured patterns coming from the Dotorg pattern directory.
remove_theme_support( 'core-block-patterns' );
}
endif;
add_action( 'after_setup_theme', 'assembler_setup' );
if ( ! function_exists( 'assembler_styles' ) ) :
/**
* Enqueue styles.
*
* @since Assembler 1.0
*
* @return void
*/
function assembler_styles() {
// Register theme stylesheet.
wp_register_style(
'assembler-style',
get_stylesheet_directory_uri() . '/style.css',
array(),
wp_get_theme()->get( 'Version' )
);
// Enqueue theme stylesheet.
wp_enqueue_style( 'assembler-style' );
}
endif;
add_action( 'wp_enqueue_scripts', 'assembler_styles' );