Хук use_block_editor_for_post_type
используется для управления доступом к редактору блоков (Gutenberg) для различных типов записей. Этот фильтр позволяет включить или отключить Gutenberg для указанных типов записей, что может быть полезно для настройки функциональности сайта или создания более гибкого редакторского опыта.
apply_filters( ‘use_block_editor_for_post_type’, bool $use_block_editor, string $post_type )
Хук use_block_editor_for_post_type
применяется в функции use_block_editor_for_post_type()
, когда WordPress проверяет, должен ли редактор блоков быть активирован для конкретного типа записи. Он возвращает булево значение: true
, если редактор блоков включен, и false
, если он отключен.
Параметры
- $use_block_editor (bool): Указывает, включен ли редактор блоков для типа записи.
- $post_type (string): Тип записи, для которого проверяется возможность использования редактора блоков.
Полное отключение редактора блоков для всех типов записей
Этот пример полностью отключает редактор блоков на сайте для всех типов записей. Это полезно для тех, кто предпочитает использовать классический редактор для всех материалов.
add_filter( 'use_block_editor_for_post_type', '__return_false', 100 );
Здесь используется встроенная функция __return_false
, которая всегда возвращает false
, отключая Gutenberg для всех записей.
Отключение редактора блоков для произвольного типа записи portfolio
В этом примере редактор блоков отключается только для записей типа portfolio
. Все остальные типы записей будут открываться в редакторе блоков, если он включен по умолчанию.
add_filter( 'use_block_editor_for_post_type', 'disable_gutenberg_for_portfolio', 10, 2 );
function disable_gutenberg_for_portfolio( $use_block_editor, $post_type ) {
if ( 'portfolio' === $post_type ) {
return false;
}
return $use_block_editor;
}
Этот код проверяет, является ли тип записи portfolio
, и отключает редактор блоков только для него.
Включение редактора блоков только для типов записей post
и page
Этот пример включает редактор блоков только для стандартных записей (post
) и страниц (page
). Для всех остальных типов записей редактор блоков будет отключен.
add_filter( 'use_block_editor_for_post_type', 'enable_gutenberg_for_post_and_page', 10, 2 );
function enable_gutenberg_for_post_and_page( $use_block_editor, $post_type ) {
return in_array( $post_type, [ 'post', 'page' ] );
}
Функция in_array()
возвращает true
только для типов записей post
и page
, что позволяет использовать редактор блоков только для них.
Отключение редактора блоков для всех типов записей, кроме event
В этом примере редактор блоков включен только для типа записи event
. Все остальные типы записей будут редактироваться в классическом редакторе.
add_filter( 'use_block_editor_for_post_type', 'enable_gutenberg_for_event_only', 10, 2 );
function enable_gutenberg_for_event_only( $use_block_editor, $post_type ) {
return 'event' === $post_type;
}
Заключение
Хук use_block_editor_for_post_type
— это мощный инструмент для управления редактором блоков в зависимости от типа записи. Он позволяет создавать гибкие и удобные интерфейсы для пользователей, упрощая контроль над отображением контента.