В этой статье мы рассмотрим функцию unregister_block_type()
в WordPress, которая используется для отмены регистрации типа блока Gutenberg. Это полезный инструмент для разработчиков, которые хотят убрать ненужные блоки из редактора или заменить их на свои собственные.
Описание функции
Функция unregister_block_type()
отменяет регистрацию типа блока, делая его недоступным в редакторе Gutenberg.
unregister_block_type( $name )
Параметры:
$name
(строка): Уникальное имя блока, который нужно отменить, обычно в форматеnamespace/block-name
.
Возвращаемое значение:
true
при успешной отмене регистрации, иначеfalse
.
Примеры использования
Рассмотрим несколько примеров использования функции unregister_block_type()
.
Отмена регистрации стандартного блока
Если вы хотите убрать стандартный блок, например, блок «Цитата» (core/quote
), можно сделать следующее:
function unregister_core_quote_block() {
unregister_block_type( 'core/quote' );
}
add_action( 'init', 'unregister_core_quote_block' );
Отмена регистрации пользовательского блока
Если вам нужно отменить регистрацию пользовательского блока, который был добавлен плагином или темой, например, блока myplugin/custom-block
, используйте следующий код:
function unregister_custom_block() {
unregister_block_type( 'myplugin/custom-block' );
}
add_action( 'init', 'unregister_custom_block' );
Удаление нескольких блоков
Для отмены регистрации нескольких блоков можно использовать цикл:
function unregister_multiple_blocks() {
$blocks = array(
'core/quote',
'core/cover',
'myplugin/custom-block',
);
foreach ( $blocks as $block ) {
unregister_block_type( $block );
}
}
add_action( 'init', 'unregister_multiple_blocks' );
Отмена регистрации блока с условием
Вы можете условно отменять регистрацию блока, например, в зависимости от роли пользователя:
function unregister_block_for_non_admins() {
if ( ! current_user_can( 'administrator' ) ) {
unregister_block_type( 'core/quote' );
}
}
add_action( 'init', 'unregister_block_for_non_admins' );
Замена стандартного блока на пользовательский
Если вам нужно заменить стандартный блок на свой собственный, сначала отмените регистрацию стандартного блока, а затем зарегистрируйте свой:
function replace_quote_block_with_custom() {
unregister_block_type( 'core/quote' );
register_block_type( 'myplugin/custom-quote', array(
'title' => __( 'Custom Quote', 'myplugin' ),
'description' => __( 'A custom quote block.', 'myplugin' ),
'category' => 'common',
'icon' => 'format-quote',
'keywords' => array( 'quote', 'custom' ),
'render_callback' => 'render_custom_quote_block',
) );
}
function render_custom_quote_block( $attributes ) {
return '<blockquote class="custom-quote">Custom Quote Content</blockquote>';
}
add_action( 'init', 'replace_quote_block_with_custom' );
Заключение по unregister_block_type
Функция unregister_block_type()
является важным инструментом для управления блоками в редакторе Gutenberg. С её помощью можно легко убрать ненужные блоки, заменить их на пользовательские или адаптировать редактор для различных условий.
Используйте приведённые выше примеры, чтобы улучшить функциональность вашего сайта и создать более персонализированный опыт для пользователей.