Я создал свой первый пользовательский блок Гутенберга. Я хочу, чтобы он ничего не делал, кроме отображения некоторого php кода. Я заставил его работать на веб-интерфейсе, но код не отображается в той позиции, в которой я хочу. Рендерится под заголовком страницы, над всеми остальными блоками. В бэкэнде он отображается в правильном столбце. Также при сохранении страницы выдается эта ошибка: Неправильный ответ JSON. Все изменения сохраняются.
Что-то мне здесь не хватает? Это мой код:
if ( ! function_exists( 'register_block_type' ) ) {
// Gutenberg is not active.
return;
}
wp_register_script(
'ww-agenda-script',
plugins_url( 'block.js', __FILE__ ),
array( 'wp-blocks', 'wp-i18n', 'wp-element' )
);
register_block_type( 'woonenwerk/ww-agenda', array(
'editor_script' => 'ww-agenda-script',
'render_callback' => 'woonenwerk_agenda_render_callback',
) );
}
add_filter( 'init', 'ww_agenda_register_block' );
И в блоке. js:
( function( blocks, i18n, element ) {
var el = element.createElement;
var __ = i18n.__;
blocks.registerBlockType( 'woonenwerk/ww-agenda', {
title: __( 'Woon en Werk: Agenda' ),
description: __( 'Dit block laat de eerstvolgende 5 agenda items zien.' ),
icon: 'list-view',
category: 'woon-en-werk',
example: {},
edit: function() {
return el('p',{ },'Woon en Werk Agenda. Dit block laat de eerstvolgende 5 agenda-items zien.');
},
} );
}(
window.wp.blocks,
window.wp.i18n,
window.wp.element
) );
Я попытался добавить функцию сохранения, которая возвращает null
(мне не нужно сохранить что-нибудь, так как я использую render_callback
для вывода). Это не сработало.
Также я попробовал другие хуки вместо init
, но это тоже не сработало.
Я погуглил эту проблему, но не нашел ничего полезного.
Если вам нужна дополнительная информация, чтобы ответить на мой вопрос, пожалуйста, сообщите мне ..
Обновление: Я использовал BlockLab для создания другого пользовательского блока с обратным вызовом рендеринга из моего php файла. Это сработало, содержимое этого нового блока теперь отображается в правильном положении. Также в бэкэнде я вижу визуализированный контент. Я думаю, что это как-то связано с функцией сохранения. Я продолжу анализировать код BlockLab, чтобы увидеть, как я должен поместить это в свой плагин. Было бы хорошо, если бы мне не понадобился плагин BlockLab, чтобы это работало.