Расширение основного блока без разрушения существующих блоков в WordPress Gutenberg - PullRequest
0 голосов
/ 26 апреля 2020

Я пытаюсь обернуть существующие блоки ядра / таблицы div. и он работает, но он разбивает все существующие на сайте блоки таблиц с ошибкой «этот блок содержит неожиданное или недопустимое содержимое».

У меня сложилось впечатление, что поскольку функция «сохранить» в настоящее время Отредактировано, что мне нужно отказаться от исходного блока ядра / таблицы.

Вот моя попытка:

Шаг 1. Создайте новую функцию сохранения с помощью getSaveElement

wp.hooks.addFilter(
    'blocks.getSaveElement',
    'slug/modify-get-save-content-extra-props',
    modifyGetSaveContentExtraProps
);

function modifyGetSaveContentExtraProps(element, blockType, attributes) {
    // Check if that is not a table block.
    if (blockType.name !== 'core/table') {
        return element;
    }

    // Return the table block with div wrapper.
    return (
        <div className='test-table-wrapper'>
            {element}
            // some other stuff will go here.
        </div>
    );
}

Пока все хорошо. Это «расширит» существующий блок ядра / таблицы. К сожалению, все мои существующие блоки таблиц сломаны. Итак ... Мне нужно отказаться от старой версии, верно?

Шаг 2. Устаревать с помощью registerBlockTypeFilter ???

wp.hooks.addFilter(
    "blocks.registerBlockType",
    "jsforwp-advgb/extending-register-block-type",
    extendTable
);

function extendTable(settings, name) {
    if ("core/table" === name) {
        let newDep = {
            attributes: settings.attributes,
            save: settings.save
        }
        let deps2 = [
            ...settings.deprecated,
            newDep
        ];
        settings.deprecated = deps2;
        return settings;
    }

    return settings;
}

С этим кодом я все еще получение ошибки «недопустимое или неожиданное содержимое».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...