#javascript #wordpress #wordpress-gutenberg
#javascript #wordpress #wordpress-gutenberg
Вопрос:
Я пытаюсь добавить проверку после сохранения в редакторе Gutenberg в случае, если выдержка из post пуста. Что у меня сейчас есть:
const { subscribe } = wp.data;
const unsubscribe = subscribe(() => {
const editor = wp.data.select('core/editor');
const notices = wp.data.select('core/notices');
const isSavingPost = editor.isSavingPost();
const isAutosavingPost = editor.isAutosavingPost();
const didPostSaveRequestSucceed = editor.didPostSaveRequestSucceed();
if (isSavingPost amp;amp; !isAutosavingPost amp;amp; didPostSaveRequestSucceed) {
const postExcerpt = editor.getEditedPostAttribute('excerpt');
if (postExcerpt.length !== 0) {
editor.unlockPostSaving('excerpt-lock');
notices.removeNotice('excerpt-lock');
editor.savePost();
}
editor.lockPostSaving('excerpt-lock');
notices.createNotice(
'error',
'Please add an excerpt',
{ id: 'excerpt-lock', isDismissible: false }
);
unsubscribe();
}
});
Но при сохранении сообщений я получаю
Неперехваченный (в обещании) Ошибка типа: редактор.Сохранение блокировок не является функцией
Я не уверен, чего мне не хватает. Я просмотрел множество примеров в репозитории GB, в различных руководствах, но ничего не сработало.
Комментарии:
1. может быть, попробовать
wp.data.dispatch('core/editor').lockPostSaving
вместо этого? глядя на developer.wordpress.org/block-editor/data/data-core-editor2. Я пытался с этим, но я получил
Uncaught (in promise) RangeError: Maximum call stack size exceeded
содержимое внутриif(isSavingPost...)
вызывается 800 раз, а затем выдает вышеупомянутое сообщение