182 lines
6.9 KiB
PHP
182 lines
6.9 KiB
PHP
<?php
|
|
/**
|
|
* Halloween Gift Store: Block Patterns
|
|
*
|
|
* @since Halloween Gift Store 1.0
|
|
*/
|
|
|
|
/**
|
|
* Get patterns content.
|
|
*
|
|
* @param string $file_name Filename.
|
|
* @return string
|
|
*/
|
|
function halloween_gift_store_get_pattern_content( $file_name ) {
|
|
ob_start();
|
|
include get_theme_file_path( '/patterns/' . $file_name . '.php' );
|
|
$output = ob_get_contents();
|
|
ob_end_clean();
|
|
return $output;
|
|
}
|
|
|
|
/**
|
|
* Registers block patterns and categories.
|
|
*
|
|
* @since Halloween Gift Store 1.0
|
|
*
|
|
* @return void
|
|
*/
|
|
function halloween_gift_store_register_block_patterns() {
|
|
|
|
$patterns = array(
|
|
'header-default' => array(
|
|
'title' => __( 'Default header', 'halloween-gift-store' ),
|
|
'categories' => array( 'halloween-gift-store-headers' ),
|
|
'blockTypes' => array( 'parts/header' ),
|
|
),
|
|
'footer-default' => array(
|
|
'title' => __( 'Default footer', 'halloween-gift-store' ),
|
|
'categories' => array( 'halloween-gift-store-footers' ),
|
|
'blockTypes' => array( 'parts/footer' ),
|
|
),
|
|
'home-banner' => array(
|
|
'title' => __( 'Home Banner', 'halloween-gift-store' ),
|
|
'categories' => array( 'halloween-gift-store-banner' ),
|
|
),
|
|
'product-section' => array(
|
|
'title' => __( 'Product Section', 'halloween-gift-store' ),
|
|
'categories' => array( 'halloween-gift-store-product-section' ),
|
|
),
|
|
'about-section' => array(
|
|
'title' => __( 'About Section', 'halloween-gift-store' ),
|
|
'categories' => array( 'halloween-gift-store-about-section' ),
|
|
),
|
|
'testimonial-section' => array(
|
|
'title' => __( 'Testimonial Section', 'halloween-gift-store' ),
|
|
'categories' => array( 'halloween-gift-store-testimonial-section' ),
|
|
),
|
|
'news-section' => array(
|
|
'title' => __( 'News Section', 'halloween-gift-store' ),
|
|
'categories' => array( 'halloween-gift-store-news-section' ),
|
|
),
|
|
'faq-section' => array(
|
|
'title' => __( 'FAQ Section', 'halloween-gift-store' ),
|
|
'categories' => array( 'halloween-gift-store-faq-section' ),
|
|
),
|
|
'primary-sidebar' => array(
|
|
'title' => __( 'Primary Sidebar', 'halloween-gift-store' ),
|
|
'categories' => array( 'halloween-gift-store-sidebars' ),
|
|
),
|
|
'hidden-404' => array(
|
|
'title' => __( '404 content', 'halloween-gift-store' ),
|
|
'categories' => array( 'halloween-gift-store-pages' ),
|
|
),
|
|
'post-listing-single-column' => array(
|
|
'title' => __( 'Post Single Column', 'halloween-gift-store' ),
|
|
//'inserter' => false,
|
|
'categories' => array( 'halloween-gift-store-query' ),
|
|
),
|
|
'post-listing-two-column' => array(
|
|
'title' => __( 'Post Two Column', 'halloween-gift-store' ),
|
|
//'inserter' => false,
|
|
'categories' => array( 'halloween-gift-store-query' ),
|
|
),
|
|
'post-listing-three-column' => array(
|
|
'title' => __( 'Post Three Column', 'halloween-gift-store' ),
|
|
//'inserter' => false,
|
|
'categories' => array( 'halloween-gift-store-query' ),
|
|
),
|
|
'post-listing-four-column' => array(
|
|
'title' => __( 'Post Four Column', 'halloween-gift-store' ),
|
|
//'inserter' => false,
|
|
'categories' => array( 'halloween-gift-store-query' ),
|
|
),
|
|
'feature-post-column' => array(
|
|
'title' => __( 'Feature Post Column', 'halloween-gift-store' ),
|
|
//'inserter' => false,
|
|
'categories' => array( 'halloween-gift-store-query' ),
|
|
),
|
|
'comment-section-1' => array(
|
|
'title' => __( 'Comment Section 1', 'halloween-gift-store' ),
|
|
'categories' => array( 'halloween-gift-store-comment-sections' ),
|
|
),
|
|
'cover-with-post-title' => array(
|
|
'title' => __( 'Cover With Post Title', 'halloween-gift-store' ),
|
|
'categories' => array( 'halloween-gift-store-banner-sections' ),
|
|
),
|
|
'cover-with-search-title' => array(
|
|
'title' => __( 'Cover With Search Title', 'halloween-gift-store' ),
|
|
'categories' => array( 'halloween-gift-store-banner-sections' ),
|
|
),
|
|
'cover-with-archive-title' => array(
|
|
'title' => __( 'Cover With Archive Title', 'halloween-gift-store' ),
|
|
'categories' => array( 'halloween-gift-store-banner-sections' ),
|
|
),
|
|
'cover-with-index-title' => array(
|
|
'title' => __( 'Cover With Index Title', 'halloween-gift-store' ),
|
|
'categories' => array( 'halloween-gift-store-banner-sections' ),
|
|
),
|
|
'theme-button' => array(
|
|
'title' => __( 'Theme Button', 'halloween-gift-store' ),
|
|
'categories' => array( 'halloween-gift-store-theme-button' ),
|
|
),
|
|
);
|
|
|
|
$block_pattern_categories = array(
|
|
'halloween-gift-store-footers' => array( 'label' => __( 'Footers', 'halloween-gift-store' ) ),
|
|
'halloween-gift-store-headers' => array( 'label' => __( 'Headers', 'halloween-gift-store' ) ),
|
|
'halloween-gift-store-pages' => array( 'label' => __( 'Pages', 'halloween-gift-store' ) ),
|
|
'halloween-gift-store-query' => array( 'label' => __( 'Query', 'halloween-gift-store' ) ),
|
|
'halloween-gift-store-sidebars' => array( 'label' => __( 'Sidebars', 'halloween-gift-store' ) ),
|
|
'halloween-gift-store-banner' => array( 'label' => __( 'Banner Sections', 'halloween-gift-store' ) ),
|
|
'halloween-gift-store-product-section' => array( 'label' => __( 'Product Section', 'halloween-gift-store' ) ),
|
|
'halloween-gift-store-about-section' => array( 'label' => __( 'About Section', 'halloween-gift-store' ) ),
|
|
'halloween-gift-store-testimonial-section' => array( 'label' => __( 'Testimonial Section', 'halloween-gift-store' ) ),
|
|
'halloween-gift-store-news-section' => array( 'label' => __( 'News Section', 'halloween-gift-store' ) ),
|
|
'halloween-gift-store-faq-section' => array( 'label' => __( 'FAQ Section', 'halloween-gift-store' ) ),
|
|
'halloween-gift-store-comment-section' => array( 'label' => __( 'Comment Sections', 'halloween-gift-store' ) ),
|
|
'halloween-gift-store-theme-button' => array( 'label' => __( 'Theme Button Sections', 'halloween-gift-store' ) ),
|
|
);
|
|
|
|
/**
|
|
* Filters the theme block pattern categories.
|
|
*
|
|
* @since Halloween Gift Store 1.0
|
|
*
|
|
* @param array[] $block_pattern_categories {
|
|
* An associative array of block pattern categories, keyed by category name.
|
|
*
|
|
* @type array[] $properties {
|
|
* An array of block category properties.
|
|
*
|
|
* @type string $label A human-readable label for the pattern category.
|
|
* }
|
|
* }
|
|
*/
|
|
$block_pattern_categories = apply_filters( 'halloween_gift_store_block_pattern_categories', $block_pattern_categories );
|
|
|
|
foreach ( $block_pattern_categories as $name => $properties ) {
|
|
if ( ! WP_Block_Pattern_Categories_Registry::get_instance()->is_registered( $name ) ) {
|
|
register_block_pattern_category( $name, $properties );
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Filters the theme block patterns.
|
|
*
|
|
* @since Halloween Gift Store 1.0
|
|
*
|
|
* @param array $block_patterns List of block patterns by name.
|
|
*/
|
|
$patterns = apply_filters( 'halloween_gift_store_block_patterns', $patterns );
|
|
|
|
foreach ( $patterns as $block_pattern => $pattern ) {
|
|
$pattern['content'] = halloween_gift_store_get_pattern_content( $block_pattern );
|
|
register_block_pattern(
|
|
'halloween-gift-store/' . $block_pattern,
|
|
$pattern
|
|
);
|
|
}
|
|
}
|
|
add_action( 'init', 'halloween_gift_store_register_block_patterns', 9 );
|