Блоки Wordpress Gutenberg - расширение ядра / кода и устаревшие настройки дают ошибку - PullRequest
1 голос
/ 17 марта 2020

Сначала я просто хотел расширить один из блоков Wordpress Gutenberg. Я выбрал блок «ядро / код». Я добавил тег h2 для заголовка после содержимого по умолчанию, который работал нормально. Тогда я решил изменить тег h2 на тег p. Как я понимаю, мне нужно добавить устаревший массив в объект настроек. Я сделал это, но получаю эту ошибку:

Content generated by `save` function:
<pre><code>undefined

Содержание получено из тела сообщения:
&lt;p>sdsd&lt;/p>

изменено!

Мой код:

const enableExtendOnBlocks = [
    'core/code',
];

function addAttributes( settings, name ) {

    if ( ! enableExtendOnBlocks.includes( name ) ) {
        return settings;
    }

     if( typeof settings.attributes !== 'undefined' ){

        settings.attributes = Object.assign( settings.attributes, {
            vista:{
                type: 'string',
                default: 'vista',
                source: 'html',
                selector: 'p',
            }
        });

        settings.title = 'My Code';

        const oldAtt = {
             ...settings.attributes,
            vista: {
                type: 'string',
                source: 'html',
                 selector: 'h2',
                default: 'vista',
            },
         };

        settings.deprecated = [
            {
                attributes: oldAtt,
                save: function (oldAtt) {
                    return (
                        <>
                            <pre>
                                <code>{ escape( oldAtt.content ) }
                            
); },}]; } вернуть настройки; } wp.hooks.addFilter ('blocks.registerBlockType', 'extend-block-example / custom-attribute', addAttributes); const withInspectorControls = createHigherOrderComponent ((BlockEdit) => {return (props) => {if (! enableExtendOnBlocks.include (props.name)) {return ; } const onChangeVista = (vista) => {props.setAttributes ({vista: vista}); }; возврат ( onChangeVista (vista)} /> ); }; }, "withInspectorControl"); wp.hooks.addFilter ('editor.BlockEdit', 'my-plugin / with-inspector-controls', withInspectorControls); function wpse298225GallerySaveElement (element, blockType, attribute) {if (blockType.name! == 'core / code') {return element; } return (<> {element} ); } wp.hooks.addFilter ('blocks.getSaveElement', 'wpse-298225', wpse298225GallerySaveElement);

Что я делаю не так?

...