Отключите «Редактор кода» для ролей, например, Авторы - PullRequest
1 голос
/ 09 апреля 2019

Меня попросили отключить «Редактор кода» и функцию «Редактировать как HTML» в редакторе WordPress Gutenberg.

К сожалению, я не могу найти какое-либо решение в Google (спасибо, публикации в Classic Editor ...) или в Справочнике разработчика по wp.org.

Моей первой попыткой было отфильтровать запись меню редактора кода с помощью wp_default_editor , но возможные аргументы не подходят для WP версии 5. *

Есть идеи для одного из обоих случаев?

1 Ответ

0 голосов
/ 17 апреля 2019

Чтобы отключить опцию «Редактировать как HTML» для всех блоков на сайте, вам нужно настроить Webpack и все такое забавное. Вы можете использовать «Создать блок Гутена», чтобы запустить проект, если не хотите сами все настраивать.

Затем в вашем файле block.js (или в любом другом пользовательском файле JS, который вы настраиваете для редактора) вам понадобится всего несколько строк кода. Используйте фильтр registerBlockType, чтобы изменить все блоки сразу после их регистрации, что позволит вам отключить «Редактировать как HTML», а также другие функции (например, имя настраиваемого класса).

// Use WP Hooks
const { addFilter } = wp.hooks;
// Create the filter
addFilter(
    "blocks.registerBlockType", // Using the registerBlockType hook
    "cgb/change-core-blocks", // Custom namespace, slash, name for your filter
    changeCoreBlocks // The name of your custom function
);
function changeCoreBlocks( settings, name ) {
    // This will fire for all blocks - from Core, plugins, and themes
    settings.supports = Object.assign({}, settings.supports, {
        // Setting "html" to false disables the "Edit as HTML" functionality
        html: false
    });
}

Вероятно, есть способ сделать это в более старом JavaScript, который бы не требовал настройки Webpack или использования Create Guten Block, что кажется довольно сложным для запуска этого простого фильтра.

...