royboy789/gutenberg-array-save

将Gutenberg数据保存为干净的数组到数据库中

安装: 7

依赖: 0

建议者: 0

安全: 0

星标: 248

关注者: 14

分支: 17

开放问题: 8

类型:wordpress-plugin


README

此插件的目的在于将Gutenberg(新WordPress编辑器)数据保存为数据库中的数组,通过REST API可访问。

安装

  • 克隆
  • 运行 composer install
  • 运行 npm install
  • npm run dev / npm run build
  • 激活插件。

WIKI

我在WIKI中添加了文档

原因

尽管WordPress编辑器的新UI非常出色,但当前存储的数据有很多改进空间,因为数据以HTML注释为基础

位置

数据将保存到一个新的数据库表中 [prefix]_gutes_arrays

REST API

我包含了一个过滤器,将 editor_block 添加到正常的帖子内容响应中。

API 端点

包含1个新路由

  • wp-json/gutes-db/v1/[post-id] - 支持 GET & POST
  • wp-json/gutes-db/v1/[post-id]/revisions - 仅支持 GET

GET

GET: wp-json/gutes-db/v1/[post-id] 返回

  • is_gutes: 是否使用Gutenberg创建的帖子
  • post_id: 帖子ID
  • data: Gutenberg数据
  • _embedded['post']: 可选,与 _embed 一起使用 - 帖子从WP REST API返回的响应

保存

POST: wp-json/gutes-db/v1/[post-id]

  • id - 必需 - 帖子ID
  • gutes_data - 必需 - 数据数组

钩子

要发送数据到API保存,我们必须首先转换数据。使用 wp.hooks,您可以通过添加过滤器来挂钩此过程

  • 命名空间 - 'gutes_array'
  • 过滤器名称 - clean_data_[hyphenated-block-name]
  • 数据 - 发送和返回的是属性数组

示例
wp.hooks.addFilter( 'clean_data_core-paragraph', 'gutes-array', callback );

将editor_blocks添加到其他CPT响应中

V 1.1.0+
您是否在使用Gutenberg的另一个CPT(帖子类型)?太棒了!您只需在 rest_api_init 之前定义 GUTENBERG_OBJECT_PLUGIN_CPTS,并用逗号分隔的CPT列表即可。

add_action( 'init', 'my_custom_cpts', 10 );
function my_custom_cpts() {
    if ( ! defined( 'GUTENBERG_OBJECT_PLUGIN_CPTS' ) ) {
        define( 'GUTENBERG_OBJECT_PLUGIN_CPTS', 'product,page,other_cpt' );    
    }
}

一旦 GUTENBERG_OBJECT_PLUGIN_CPTS 被定义为逗号分隔的列表,则 editor_block 数据将出现在该CPT的API响应中

辅助函数

  • <?php get_editor_blocks( $post_id ); ?> - 返回块数据数组

版本 / 构建包

如果您不习惯使用 composerwebpacknpm,只想在您的网站上尝试此插件,我将尝试创建打包版本。

请前往 版本 下载一个准备好使用的zip包。

第三方块支持

如果您有添加块的插件,请创建一个带有插件链接的问题,我将尝试添加支持!