Пользовательский блок Гутенберга


Я пытаюсь создать пользовательский блок для Гутенберга. Поэтому я попробовал что-то простое, как это:

JS-файл:

var el = wp.element.createElement;

wp.blocks.registerBlockType('test/blocks', {
    title: 'Test Blocks',
    icon: 'smiley',
    category: 'common',
    attributes: {
        content: {type: 'string'}
    }
},

edit: function(props) {

    return

    el( 'div', {},
        el( 'p', {}, window.wp.i18n.__( 'Hello World!!!' ) )
    );

},

save: function(props) {           

    return

    el( 'div', {},
        el( 'p', {}, window.wp.i18n.__( 'Hello World!!!' ) )
    );

})

Файл js является частью плагина, который я создал, и он загружается файлом .php. Проблема в том, что он даже не отображается как опция блокировки в редакторе Гутенберга. Итак, мои вопросы таковы:

  1. Что не так с моим текущим кодом?
  2. Как я могу добавить некоторые поля? Текстовое редактирование, кнопка и т. Д.?
  3. Возможно ли иметь несколько поля, похожие на ретранслятор?
  4. Почему все делают для этого плагин? Почему бы просто не загрузить файл js из functions.php ?
Author: DimChtz, 2019-05-06

1 answers

К 1. Вы закрыли registerBlockType слишком рано и, чтобы избежать дальнейших ошибок, вы должны напечатать свой возврат в той же строке, что и return в ваших функциях редактирования/сохранения.

var el = wp.element.createElement;

wp.blocks.registerBlockType('test/blocks', {
    title: 'Test Blocks',
    icon: 'smiley',
    category: 'common',
    attributes: {
        content: {type: 'string'}

    },

edit: function(props) {

    return el( 'div', {},
                el( 'p', {}, window.wp.i18n.__( 'Hello World!!!' ) )
            )
},

save: function(props) {     

    return  el( 'div', {},
                el( 'p', {}, window.wp.i18n.__( 'Hello World!!!' ) )
            );
}
});

До 2. Вы можете найти элементы в Справочнике Гутенберга здесь. Обратите внимание на поле поиска вверху.
до 3. Где вы хотите иметь несколько полей для чего?
до 4. Если блок является плагином, его легко загружать и расширять файлы. Вы также можете зарегистрировать редактор и интерфейс css файлы для вашего блока, и все это в коробке.;o)

 1
Author: moped, 2019-05-07 07:52:50