如何在 WordPress Gutenberg 编辑器 Metabox 上进行 JavaScript 验证

Ray*_*dez 1 javascript validation wordpress editor wordpress-gutenberg

我正在使用Gutenberg在新版WordPressdate上为自定义帖子类型创建自定义分类法。announcement

我需要这个分类法成为发布帖子的必填字段,并且我已经尝试过

<input type="date" required>
Run Code Online (Sandbox Code Playgroud)

它不起作用,现在我正在努力使用“requireMe”类来验证该输入。

所以我试图做的是Publish Post用 JavaScript 捕获按钮并禁用它,无论这个输入是否已经设置。

我的第一个问题是我永远无法捕获这个按钮,因为它不是实际 DOM 的一部分,所以我已经注意到有一种新方法可以通过 API 来执行此操作,但我找不到合适的文档来执行此操作。

我所需要的只是进行此验证。

如图所示

小智 5

您可以使用编辑器存储并调度一个事件,该事件将禁用保存帖子,直到您再次解锁为止。

wp.data.dispatch( 'core/editor' ).lockPostSaving( 'my_lock_key' );
Run Code Online (Sandbox Code Playgroud)

要禁用锁,请调用:

wp.data.dispatch( 'core/editor' ).unlockPostSaving( 'my_lock_key' );
Run Code Online (Sandbox Code Playgroud)

您还可以选择发送显示在编辑器顶部的通知。

wp.data.dispatch( 'core/notices' ).removeNotice('LOCK_NOTICE');
wp.data.dispatch( 'core/notices' ).createErrorNotice( 'Please enter a date to continue.', { id: 'LOCK_NOTICE',isDismissible: true} ) ;
Run Code Online (Sandbox Code Playgroud)