get( 'Version' ) ); } add_action( 'wp_enqueue_scripts', 'blockster_styles' ); /* ----------------------------------------------------------------------------------------------- BLOCK PATTERNS Register theme specific block patterns. --------------------------------------------------------------------------------------------------- */ if ( ! function_exists( 'blockster_register_block_patterns' ) ) : function blockster_register_block_patterns() { if ( ! ( function_exists( 'register_block_pattern_category' ) && function_exists( 'register_block_pattern' ) ) ) return; // The block pattern categories included in blockster. $blockster_block_pattern_categories = apply_filters( 'blockster_block_pattern_categories', array( 'blockster-blog' => array( 'label' => esc_html__( 'Block Themes Pro Blog', 'blockster' ), ), 'blockster-cta' => array( 'label' => esc_html__( 'Block Themes Pro Call to Action', 'blockster' ), ), 'blockster-footer' => array( 'label' => esc_html__( 'Block Themes Pro Footer', 'blockster' ), ), 'blockster-general' => array( 'label' => esc_html__( 'Block Themes Pro General', 'blockster' ), ), 'blockster-header' => array( 'label' => esc_html__( 'Block Themes Pro Header', 'blockster' ), ), 'blockster-hero' => array( 'label' => esc_html__( 'Block Themes Pro Hero', 'blockster' ), ), ) ); // Sort the block pattern categories alphabetically based on the label value, to ensure alphabetized order when the strings are localized. uasort( $blockster_block_pattern_categories, function( $a, $b ) { return strcmp( $a["label"], $b["label"] ); } ); // Register block pattern categories. foreach ( $blockster_block_pattern_categories as $slug => $settings ) { register_block_pattern_category( $slug, $settings ); } // viewportWidth values, determining the width of the preview in the Block Patterns drawer. $viewport = apply_filters( 'blockster_block_patterns_viewport', array( 'full' => 1440, 'wide' => 1312, 'wide_grouped' => 1180, 'content' => 640 ) ); // The block patterns included in blockster. $blockster_block_patterns = apply_filters( 'blockster_block_patterns', array( /* BLOG */ 'blockster/blog-grid-cols-3' => array( 'title' => esc_html__( 'Three column grid with featured image, title, and categories', 'blockster' ), 'categories' => array( 'blockster-blog' ), 'viewportWidth' => $viewport['wide'], 'content' => blockster_get_block_pattern_markup( 'blog/blog-grid-cols-3' ), ), 'blockster/blog-list' => array( 'title' => esc_html__( 'List with featured image, title, excerpt, and post date.', 'blockster' ), 'categories' => array( 'blockster-blog' ), 'viewportWidth' => $viewport['wide'], 'content' => blockster_get_block_pattern_markup( 'blog/blog-list' ), ), 'blockster/blog-list-compact' => array( 'title' => esc_html__( 'Compact list with title and post date.', 'blockster' ), 'categories' => array( 'blockster-blog' ), 'viewportWidth' => $viewport['wide'], 'content' => blockster_get_block_pattern_markup( 'blog/blog-list-compact' ), ), 'blockster/blog-single-with-cover-image' => array( 'title' => esc_html__( 'Single blog post uses featured images as hero cover image', 'blockster' ), 'categories' => array( 'blockster-blog' ), 'viewportWidth' => $viewport['full'], 'content' => blockster_get_block_pattern_markup( 'blog/blog-single-with-cover-image' ), ), /* CALL TO ACTION */ 'blockster/cta-banner' => array( 'title' => esc_html__( 'Banner with background color and call to action button', 'blockster' ), 'categories' => array( 'blockster-cta' ), 'viewportWidth' => $viewport['wide'], 'content' => blockster_get_block_pattern_markup( 'cta/cta-banner' ), ), 'blockster/cta-subscribe-form' => array( 'title' => esc_html__( 'Banner with a newsletter sign up form (HTML)', 'blockster' ), 'categories' => array( 'blockster-cta' ), 'viewportWidth' => $viewport['wide'], 'content' => blockster_get_block_pattern_markup( 'cta/cta-subscribe-form' ), ), /* GENERAL */ 'blockster/general-faqs' => array( 'title' => esc_html__( 'Frequently Asked Questions (FAQ) section', 'blockster' ), 'categories' => array( 'blockster-general' ), 'viewportWidth' => $viewport['full'], 'content' => blockster_get_block_pattern_markup( 'general/general-faqs' ), ), 'blockster/general-logos' => array( 'title' => esc_html__( 'Featured on or sponsored by list with company logos', 'blockster' ), 'categories' => array( 'blockster-general' ), 'viewportWidth' => $viewport['wide'], 'content' => blockster_get_block_pattern_markup( 'general/general-logos' ), ), 'blockster/general-follow-us-vertical' => array( 'title' => esc_html__( 'Follow us section with a vertical layout.', 'blockster' ), 'categories' => array( 'blockster-general' ), 'viewportWidth' => $viewport['content'], 'content' => blockster_get_block_pattern_markup( 'general/general-follow-us-vertical' ), ), 'blockster/general-follow-us-horizontal' => array( 'title' => esc_html__( 'Follow us section with a horizontal layout.', 'blockster' ), 'categories' => array( 'blockster-general' ), 'viewportWidth' => $viewport['wide'], 'content' => blockster_get_block_pattern_markup( 'general/general-follow-us-horizontal' ), ), 'blockster/general-price-options' => array( 'title' => esc_html__( 'Price options', 'blockster' ), 'categories' => array( 'blockster-general' ), 'viewportWidth' => $viewport['wide'], 'content' => blockster_get_block_pattern_markup( 'general/general-price-options' ), ), 'blockster/general-quote-columns' => array( 'title' => esc_html__( 'Three quote testimonials', 'blockster' ), 'categories' => array( 'blockster-general', 'blockster-restaurant' ), 'viewportWidth' => $viewport['wide'], 'content' => blockster_get_block_pattern_markup( 'general/general-quote-columns' ), ), /* HERO */ 'blockster/hero-cover-content-left' => array( 'title' => esc_html__( 'Cover block and content positioned to the left', 'blockster' ), 'categories' => array( 'blockster-hero' ), 'viewportWidth' => $viewport['full'], 'content' => blockster_get_block_pattern_markup( 'hero/hero-cover-content-left' ), ), 'blockster/hero-cover-content-right' => array( 'title' => esc_html__( 'Cover block and content positioned to the right', 'blockster' ), 'categories' => array( 'blockster-hero' ), 'viewportWidth' => $viewport['full'], 'content' => blockster_get_block_pattern_markup( 'hero/hero-cover-content-right' ), ), 'blockster/hero-cover-content-center' => array( 'title' => esc_html__( 'Cover block and content positioned centered', 'blockster' ), 'categories' => array( 'blockster-hero' ), 'viewportWidth' => $viewport['full'], 'content' => blockster_get_block_pattern_markup( 'hero/hero-cover-content-center' ), ), 'blockster/hero-cover-columns' => array( 'title' => esc_html__( 'Hero with a background color and a heading, paragraph of text, and a three column group.', 'blockster' ), 'categories' => array( 'blockster-hero' ), 'viewportWidth' => $viewport['full'], 'content' => blockster_get_block_pattern_markup( 'hero/hero-cover-columns' ), ), 'blockster/hero-gallery' => array( 'title' => esc_html__( 'Heading with paragraph, call to action button and image gallery.', 'blockster' ), 'categories' => array( 'blockster-hero' ), 'viewportWidth' => $viewport['wide'], 'content' => blockster_get_block_pattern_markup( 'hero/hero-gallery' ), ), 'blockster/hero-cover-gallery-and-columns' => array( 'title' => esc_html__( 'Cover block with heading, gallery, and call to action boxes', 'blockster' ), 'categories' => array( 'blockster-hero' ), 'viewportWidth' => $viewport['wide'], 'content' => blockster_get_block_pattern_markup( 'hero/hero-cover-gallery-and-columns' ), ), ) ); // Register block patterns. foreach ( $blockster_block_patterns as $slug => $settings ) { register_block_pattern( $slug, $settings ); } } add_action( 'init', 'blockster_register_block_patterns' ); endif; /* ----------------------------------------------------------------------------------------------- GET BLOCK PATTERN MARKUP Returns the markup of the block pattern at the specified theme path. --------------------------------------------------------------------------------------------------- */ if ( ! function_exists( 'blockster_get_block_pattern_markup' ) ) : function blockster_get_block_pattern_markup( $pattern_name ) { $path = 'inc/block-patterns/' . $pattern_name . '.php'; if ( ! locate_template( $path ) ) return; ob_start(); include( locate_template( $path ) ); return ob_get_clean(); } endif;