block_editor_settings_all
Позволяет изменить настройки блочного редактора для всех типов редакторов.
Этот фильтр даёт возможность перехватить массив настроек $editor_settings перед их использованием редактором и изменить любые параметры, например размер загрузок, включение/отключение частей UI, стандартные стили и др.
Можно точно настроить поведение редактора в зависимости от контекста (обычная запись, страница, пользовательские типы записей) — для этого имеется объект WP_Block_Editor_Context с информацией о контексте в котором работает текущий редактор.
Введён в WP 5.8. До этого использовался устаревший хук block_editor_settings.
Использование
add_filter( 'block_editor_settings_all', 'wp_kama_block_editor_settings_all_filter', 10, 2 );
/**
* Function for `block_editor_settings_all` filter-hook.
*
* @param array $editor_settings Default editor settings.
* @param WP_Block_Editor_Context $block_editor_context The current block editor context.
*
* @return array
*/
function wp_kama_block_editor_settings_all_filter( $editor_settings, $block_editor_context ){
// filter...
return $editor_settings;
}
- $editor_settings(массив)
Массив настроек редактора.
Список всех полей (WP 6.8):
$settings = [ '__experimentalAdditionalBlockPatternCategories' => [], // Дополнительные категории паттернов блоков, которые можно добавить в редактор. '__experimentalAdditionalBlockPatterns' => [], // Дополнительные паттерны блоков, которые будут зарегистрированы в редакторе. '__experimentalDashboardLink' => 'http://pbnwp.loc/wp-admin/', // Ссылка на панель управления (используется в редакторе сайта). '__experimentalDiscussionSettings' => [], // Настройки обсуждений (комментариев) для редактора. '__experimentalFeatures' => [], // Настройки новых возможностей, связанных с блоками, темами и др. (из theme.json). '__unstableGalleryWithImageBlocks' => true, // Включает новый тип галереи, где каждая картинка — отдельный блок Image. '__unstableIsBlockBasedTheme' => true, // Показывает, используется ли блочная тема (на базе theme.json и шаблонов в блоках). '__unstableResolvedAssets' => [], // Ассеты, которые были автоматически разрешены и передаются в редактор. 'alignWide' => false, // Разрешить ли использование выравнивания `wide` и `full` для блоков. 'allowedBlockTypes' => true, // Указывает, какие блоки разрешены. `true` — все, `false` — ни один, массив — конкретные. 'allowedMimeTypes' => [], // Разрешённые типы файлов для загрузки. 'autosaveInterval' => 60, // Интервал автосохранения (в секундах). 'availableTemplates' => [], // Доступные шаблоны записей для текущего поста. 'blockCategories' => [], // Список категорий блоков для отображения в редакторе. 'bodyPlaceholder' => 'Type / to choose a block', // Текст-заполнитель в основном поле редактирования содержимого. 'canUpdateBlockBindings' => true, // Разрешено ли обновлять связи данных в блоках (binding API). 'colors' => [], // Палитра цветов, доступных для блоков. 'defaultEditorStyles' => [], // Стили по умолчанию, применяемые к редактору. 'defaultTemplatePartAreas' => [], // Список стандартных зон для template parts. 'disableCustomColors' => true, // Отключить выбор пользовательских цветов. 'disableCustomFontSizes' => true, // Отключить пользовательские размеры шрифтов. 'disableCustomGradients' => true, // Отключить пользовательские градиенты. 'disableCustomSpacingSizes' => true, // Отключить пользовательские отступы. 'disableLayoutStyles' => false, // Отключить автоматическое добавление CSS для layout. 'disablePostFormats' => true, // Отключить выбор форматов записи. 'enableCustomLineHeight' => false, // Разрешить настройку межстрочного интервала. 'enableCustomSpacing' => true, // Разрешить настройку отступов (padding, margin). 'enableCustomUnits' => [], // Список единиц измерения, доступных для ввода (например, px, em, % и др.). 'fontSizes' => [], // Предопределённые размеры шрифта. 'gradients' => [], // Предопределённые градиенты. 'imageDefaultSize' => 'large', // Размер изображений по умолчанию при вставке. 'imageDimensions' => [], // Размеры изображений, доступные для изменения. 'imageEditing' => true, // Включить или отключить редактирование изображений. 'imageSizes' => [], // Список всех доступных размеров изображений. 'isRTL' => false, // Активна ли RTL-направленность интерфейса (письмо справа налево). 'localAutosaveInterval' => 15, // Интервал локального автосохранения (в секундах, хранится в браузере). 'maxUploadFileSize' => 1536000, // Максимальный размер загружаемого файла (в байтах). 'postContentAttributes' => [], // Атрибуты, передаваемые контейнеру блока контента. 'postLock' => [], // Информация о блокировке редактирования записи другим пользователем. 'postLockUtils' => [], // Функции и настройки, связанные с блокировкой записи. 'richEditingEnabled' => true, // Включён ли визуальный редактор (rich text). 'spacingSizes' => [], // Предопределённые размеры отступов. 'styles' => [], // Все применяемые стили темы (собранные из theme.json, пользовательские и др.). 'supportsLayout' => true, // Поддержка layout-функций в редакторе. 'supportsTemplateMode' => true, // Включить поддержку редактирования шаблонов (template mode). 'titlePlaceholder' => 'Add title', // Текст-заполнитель в поле заголовка записи. // additional settings '__experimentalBlockDirectory' => true, // Включает поддержку установки блоков из каталога блоков WordPress. '__experimentalGlobalStylesBaseStyles' => [], // Базовые стили глобальных стилей (из theme.json). '__unstableHasCustomAppender' => false, // Управляет отображением кастомной кнопки добавления блоков. 'blockInspectorTabs' => [ 'default' => true ], // Управляет отображением вкладок панели инспектора блоков (настройки, стили и т.п.). 'canLockBlocks' => true, // Управление возможностью блокировки перемещения/удаления блоков. 'capabilities' => [], // Возможности текущего пользователя (например, может ли он публиковать, редактировать и т.д.). 'clearBlockSelection' => false, // Сброс выделения блоков при определённых действиях (внутреннее). 'codeEditingEnabled' => true, // Разрешён ли режим редактирования кода (HTML) пользователю. 'enableOpenverseMediaCategory' => true, // Включает вкладку Openverse в медиабраузере. 'generateAnchors' => true, // Автоматическое создание HTML-якорей для блоков (например, заголовков). 'isPreviewMode' => false, // Находится ли редактор в режиме предпросмотра. 'locale' => 'en_US', // Локаль текущего пользователя (напр. "ru_RU"). 'maxWidth' => 610, // Максимальная ширина контейнера блоков (обычно задаётся темой). 'onNavigateToEntityRecord' => null, // JS-колбэк, вызываемый при переходе к другому ресурсу (посту, странице и т.п.). 'postsPerPage' => 10, // Кол-во записей, отображаемых на страницу (например, в выпадающих списках). 'readOnly' => false, // Редактор открыт только для чтения (например, в случае блокировки поста другим пользователем). 'widgetTypesToHideFromLegacyWidgetBlock' => [], // Типы виджетов, которые нужно скрыть в блоке "старые виджеты". ];
- $block_editor_context(WP_Block_Editor_Context)
Контекст текущего редактора (информация о записи, типе редактора и т.п.). См. WP_Block_Editor_Context.
Пример объекта:
WP_Block_Editor_Context Object ( [name] => core/edit-site [post] => )
Примеры
#1 Демо: пример изменения параметров редактора
add_filter( 'block_editor_settings_all', 'remove_block_editor_styles', 10, 2 );
/**
* @param array $settings The block editor settings.
* @param WP_Block_Editor_Context $context The context of the block editor.
*/
function remove_block_editor_styles( $settings, $context ): array {
// Редактор сайта на странице админки: Appearance > Editor - /wp-admin/site-editor.php
if( $context->name === 'core/edit-site' ){
$settings['styles'] = []; // Очищаем стили редактора сайта
$settings['disableLayoutStyles'] = 1; // Отключаем стили макета редактора сайта
}
// Редактор блоков на странице редактирования поста: /wp-admin/post.php
if( $context->name === 'core/edit-post' ){
if( $context->post->post_type === 'my_custom_type' ){
$settings['allowedBlockTypes'] = false; // Отключаем все блоки
}
$settings['canLockBlocks'] = false; // Отключаем возможность блокировки блоков
$settings['disablePostFormats'] = false;
}
return $settings;
}
Список изменений
| С версии 5.8.0 | Введена. |
Где вызывается хук
$editor_settings = apply_filters( 'block_editor_settings_all', $editor_settings, $block_editor_context );
Где используется хук в WordPress
add_filter( 'block_editor_settings_all', array( 'WP_Duotone', 'add_editor_settings' ), 10 );