'Blockify', 'slug' => 'blockify', 'required' => true, ], [ 'name' => 'Gutenberg', 'slug' => 'gutenberg', 'required' => true, ], ], [ 'is_automatic' => true, ] ); } if ( is_plugin_active( 'blockify/blockify.php' ) ) { return; } add_action( 'after_setup_theme', NS . 'create_default_nav_menu' ); /** * Attempts to create a default navigation menu for pattern content. * * @since 0.0.5 * * @return void */ function create_default_nav_menu(): void { if ( ! get_post( 999 ) ) { wp_insert_post( [ 'import_id' => 999, 'post_title' => __( 'Default', 'blockify' ), 'post_type' => 'wp_navigation', 'post_status' => 'publish', 'post_content' => ' ', ] ); } } add_action( 'after_setup_theme', NS . 'register_default_patterns' ); /** * Registers patterns on front end to support pattern block. * * @since 1.0.0 * * @return void */ function register_default_patterns() { $categories = []; $patterns = []; foreach ( glob( DIR . 'patterns/default/*.php' ) as $file ) { $headers = get_file_data( $file, [ 'categories' => 'Categories', 'title' => 'Title', 'slug' => 'Slug', 'block_types' => 'Block Types', ] ); $category = str_replace( 'blockify/', '', $headers['categories'] ); ob_start(); include $file; $content = ob_get_clean(); $patterns[ $headers['slug'] ] = [ 'title' => $headers['title'], 'categories' => [ $category ], 'content' => $content, ]; if ( $headers['block_types'] ) { $patterns[ $headers['slug'] ]['blockTypes'] = $headers['block_types']; } $categories[ $category ] = [ 'label' => ucwords( $category ), ]; } foreach ( $categories as $category_name => $args ) { register_block_pattern_category( $category_name, $args ); } foreach ( $patterns as $pattern_name => $args ) { register_block_pattern( $pattern_name, $args ); } }