Изменить значения по умолчанию быстрого вставщика блоков Гутенберга

Вопрос или проблема

Я пытаюсь изменить блоки, предложенные через быстрый вставщик, то есть шесть блоков, показываемых при нажатии кнопки +:

WordPress quick inserter

Причина в том, что как только мы внедрим блоки Gutenberg на определённом сайте (сейчас используется классический редактор), люди, добавляющие посты, захотят, чтобы там были доступны определённые блоки. (Я знаю, что они могут просто искать их, и что в конечном итоге будут отображаться самые используемые блоки.)

Я пробовал код, как показано ниже, я видел примеры, которые позволяют редактировать определённые блоки, но не изменять список быстро вставляемых шести блоков. Есть ли фильтр, который позволяет изменить этот предложенный список в javascript?

wp.hooks.addFilter(
'editor.BlockEditor', // Это не существует, какой хук мне нужен?
'custom-default-blocks',
(settings, context) => {
    if (context.name !== 'core/editor') {
        return settings;
    }

    settings.suggestedBlocks = [ // Также не уверен, что здесь нужно?
        'core/paragraph',
        'core/image',
        'core/heading',
        'core/list',
        'core/quote',
        'core/gallery'
    ];

    return settings;
}

);

Ответ или решение

Введение использования Gutenberg в WordPress открывает широкие возможности для пользователей, предоставляя гибкость и удобство при создании контента. Одним из удобств, предоставленных этим редактором, является "быстрый вставщик" блоков, который позволяет пользователям быстро вставлять шесть наиболее часто используемых блоков. Однако, для вашего проекта, как вы указали, необходимо настроить этот список, чтобы облегчить работу пользователям на конкретном сайте, предлагая им сразу те блоки, которые они будут использовать наиболее часто.

Теория

Gutenberg предоставляет обширный набор API и хуков для расширения и модификации функционала редактора блоков. Однако, в случае "быстрого вставщика", таких очевидных API или хуков не предоставляется. "Дефолтные" блоки, которые появляются в быстрой вставке, определяются на основе анализа исторического использования блоков и популярности. Главная задача — попытаться интегрироваться в существующую архитектуру Gutenberg, чтобы изменить стандартное поведение и предложить нужные блоки.

Пример

В других случаях модификации работы Gutenberg используется wp.hooks, который позволяет добавлять или изменять функциональные компоненты через фильтры. Пример кода, который вы привели, пытается применить фильтр в editor.BlockEditor, который, к сожалению, не существует и приводит к нерабочему коду. Бесспорно, отсутствие явного API может вызывать сложности, и иногда решение требует более творческого подхода и понимания внутренней структуры работы Gutenberg и JavaScript.

Применение

  1. Изучение документации и существующих реализаций: В начале, стоит проверить текущую документацию WordPress Gutenberg и изучить последние возможности API. Это поможет понять, есть ли уже встроенные методы, которые не требуют обходных путей или разработки собственных решений.

  2. Использование JavaScript для модуляции интерфейса: Поскольку изменение дефолтных блоков прямо-таки невозможно, нужно искать креативные решения, например, взаимодействие с DOM или использование сторонних плагинов, которые могут предоставить необходимую функциональность.

  3. Разработка собственного плагина или расширения: Если встроенные возможности и сторонние инструменты не дают нужной гибкости, можно рассмотреть разработку собственного плагина или расширения. Поскольку Gutenberg строг в плане API, возможно, потребуется работать с JS-скриптами для непосредственного изменения интерфейса.

  4. Обсуждение и совместная работа с сообществом: Все еще открытая вариация задачи может быть донесена до GitHub репозитория или других сообществ WordPress, где разработчики делятся собственными решениями или предлагают новые идеи.

  5. Имитация путем изменения частотности использования блоков: Если вариация кода невозможна, можно временно изменять частотность использования нужных блоков в редакторе (например, с помощью потока данных или симуляции), чтобы они стали чаще появляться в левом пятаке.

  6. Аккаунтирование и тестирование изменений в безопасной среде: Всегда используйте тестовую среду для проверки и валидации эффективности и стабильности реализованных изменений.

При отсутствии прямых можификационных возможностей, предлагают использовать JavaScript и изучение WP API-методов для более интуитивного перекодирования нужного функционала. Также, выполнение обратной связи с сообществом разработчиков может подсказать более креативные подходы решения.

На этапе внедрения новых решений необходимо учитывать гибкость нужного функционала в будущем, сохраняя его возможность настраиваться под дальнейшие нужды проекта.

Оцените материал
Добавить комментарий

Капча загружается...