_register_core_block_patterns_and_categories()
云策文档标注
概述
此函数用于注册核心区块模式和分类。它首先检查主题是否支持核心区块模式,若支持则注册一系列预定义的核心区块模式,然后注册多个区块模式分类。
关键要点
- 函数通过 get_theme_support('core-block-patterns') 检查主题支持,以决定是否注册核心区块模式。
- 核心区块模式包括 query-standard-posts、query-medium-posts 等,通过 register_block_pattern() 注册,并设置 source 为 'core'。
- 注册多个区块模式分类,如 banner、buttons、columns 等,每个分类包含标签和描述,使用 register_block_pattern_category() 函数。
- 函数涉及 WordPress 核心的区块模式注册机制,适用于开发者扩展或自定义区块模式。
代码示例
function _register_core_block_patterns_and_categories() {
$should_register_core_patterns = get_theme_support( 'core-block-patterns' );
if ( $should_register_core_patterns ) {
$core_block_patterns = array(
'query-standard-posts',
'query-medium-posts',
'query-small-posts',
'query-grid-posts',
'query-large-title-posts',
'query-offset-posts',
);
foreach ( $core_block_patterns as $core_block_pattern ) {
$pattern = require __DIR__ . '/block-patterns/' . $core_block_pattern . '.php';
$pattern['source'] = 'core';
register_block_pattern( 'core/' . $core_block_pattern, $pattern );
}
}
register_block_pattern_category(
'banner',
array(
'label' => _x( 'Banners', 'Block pattern category' ),
'description' => __( 'Bold sections designed to showcase key content.' ),
)
);
// 更多分类注册代码...
}
原文内容
Registers the core block patterns and categories.
Source
function _register_core_block_patterns_and_categories() {
$should_register_core_patterns = get_theme_support( 'core-block-patterns' );
if ( $should_register_core_patterns ) {
$core_block_patterns = array(
'query-standard-posts',
'query-medium-posts',
'query-small-posts',
'query-grid-posts',
'query-large-title-posts',
'query-offset-posts',
);
foreach ( $core_block_patterns as $core_block_pattern ) {
$pattern = require __DIR__ . '/block-patterns/' . $core_block_pattern . '.php';
$pattern['source'] = 'core';
register_block_pattern( 'core/' . $core_block_pattern, $pattern );
}
}
register_block_pattern_category(
'banner',
array(
'label' => _x( 'Banners', 'Block pattern category' ),
'description' => __( 'Bold sections designed to showcase key content.' ),
)
);
register_block_pattern_category(
'buttons',
array(
'label' => _x( 'Buttons', 'Block pattern category' ),
'description' => __( 'Patterns that contain buttons and call to actions.' ),
)
);
register_block_pattern_category(
'columns',
array(
'label' => _x( 'Columns', 'Block pattern category' ),
'description' => __( 'Multi-column patterns with more complex layouts.' ),
)
);
register_block_pattern_category(
'text',
array(
'label' => _x( 'Text', 'Block pattern category' ),
'description' => __( 'Patterns containing mostly text.' ),
)
);
register_block_pattern_category(
'query',
array(
'label' => _x( 'Posts', 'Block pattern category' ),
'description' => __( 'Display your latest posts in lists, grids or other layouts.' ),
)
);
register_block_pattern_category(
'featured',
array(
'label' => _x( 'Featured', 'Block pattern category' ),
'description' => __( 'A set of high quality curated patterns.' ),
)
);
register_block_pattern_category(
'call-to-action',
array(
'label' => _x( 'Call to action', 'Block pattern category' ),
'description' => __( 'Sections whose purpose is to trigger a specific action.' ),
)
);
register_block_pattern_category(
'team',
array(
'label' => _x( 'Team', 'Block pattern category' ),
'description' => __( 'A variety of designs to display your team members.' ),
)
);
register_block_pattern_category(
'testimonials',
array(
'label' => _x( 'Testimonials', 'Block pattern category' ),
'description' => __( 'Share reviews and feedback about your brand/business.' ),
)
);
register_block_pattern_category(
'services',
array(
'label' => _x( 'Services', 'Block pattern category' ),
'description' => __( 'Briefly describe what your business does and how you can help.' ),
)
);
register_block_pattern_category(
'contact',
array(
'label' => _x( 'Contact', 'Block pattern category' ),
'description' => __( 'Display your contact information.' ),
)
);
register_block_pattern_category(
'about',
array(
'label' => _x( 'About', 'Block pattern category' ),
'description' => __( 'Introduce yourself.' ),
)
);
register_block_pattern_category(
'portfolio',
array(
'label' => _x( 'Portfolio', 'Block pattern category' ),
'description' => __( 'Showcase your latest work.' ),
)
);
register_block_pattern_category(
'gallery',
array(
'label' => _x( 'Gallery', 'Block pattern category' ),
'description' => __( 'Different layouts for displaying images.' ),
)
);
register_block_pattern_category(
'media',
array(
'label' => _x( 'Media', 'Block pattern category' ),
'description' => __( 'Different layouts containing video or audio.' ),
)
);
register_block_pattern_category(
'videos',
array(
'label' => _x( 'Videos', 'Block pattern category' ),
'description' => __( 'Different layouts containing videos.' ),
)
);
register_block_pattern_category(
'audio',
array(
'label' => _x( 'Audio', 'Block pattern category' ),
'description' => __( 'Different layouts containing audio.' ),
)
);
register_block_pattern_category(
'posts',
array(
'label' => _x( 'Posts', 'Block pattern category' ),
'description' => __( 'Display your latest posts in lists, grids or other layouts.' ),
)
);
register_block_pattern_category(
'footer',
array(
'label' => _x( 'Footers', 'Block pattern category' ),
'description' => __( 'A variety of footer designs displaying information and site navigation.' ),
)
);
register_block_pattern_category(
'header',
array(
'label' => _x( 'Headers', 'Block pattern category' ),
'description' => __( 'A variety of header designs displaying your site title and navigation.' ),
)
);
}