块编辑器开发文档

@wordpress/lazy-editor

💡 云策文档标注

概述

@wordpress/lazy-editor 包提供了一个 组件,用于简化 WordPress 块编辑器的加载和初始化过程。它自动处理资源加载、设置管理和模板上下文,开发者只需传入 postType 和 postId 即可使用。

关键要点

  • 自动加载编辑器资源:包括脚本和样式,并解析依赖关系
  • 自动加载编辑器设置:通过 REST API 获取配置
  • 解析全局样式:基于当前模板应用 theme.json 样式
  • 管理模板上下文:自动确定正在编辑文章的模板
  • 显示加载状态:在资源加载期间显示加载指示器
  • 支持多种文章类型:如 post、page、wp_template 和自定义文章类型

代码示例

import { Editor } from '@wordpress/lazy-editor';

function App() {
    return <Editor postType="page" postId="123" />;
}

📄 原文内容

Lazy-loading editor component with automatic asset and settings management.

Overview

This package provides a single <Editor> component that handles all the complexity of loading and initializing the WordPress block editor. It automatically:

  • Loads editor assets – Fetches and injects scripts and styles with proper dependency resolution
  • Loads editor settings – Retrieves editor configuration from the REST API
  • Resolves global styles – Applies theme.json styles based on the current template
  • Manages template contexts – Automatically determines the correct template for the post being edited
  • Shows loading states – Displays a spinner while assets and settings are being loaded

Installation

Install the module:

npm install @wordpress/lazy-editor --save

Usage

Basic Usage

import { Editor } from '@wordpress/lazy-editor';

function App() {
    return <Editor postType="page" postId="123" />;
}

That’s it! The component handles everything internally:
1. Resolves the template ID from the post type and ID
2. Resolves the styles ID from the template
3. Loads editor settings from /wp-block-editor/v1/settings
4. Loads editor assets from /wp-block-editor/v1/assets
5. Injects scripts and styles into the DOM
6. Renders the editor when ready

With Different Post Types

// Edit a post
<Editor postType="post" postId="42" />

// Edit a page
<Editor postType="page" postId="123" />

// Edit a template
<Editor postType="wp_template" postId="index" />

// Edit a custom post type
<Editor postType="product" postId="789" />

Contributing

See CONTRIBUTING.md.

License

GPL-2.0-or-later