The block editor was introduced in core WordPress with version 5.0 but the Gutenberg project will ultimately impact the entire publishing experience including customization (the next focus area). This beta plugin allows you to test bleeding-edge features around editing and customization projects before they land in future WordPress releases.



「编辑器将创建一个新的页面、文章建设经验,使写丰富的文章毫不费力。为了编辑经验变得更简单,“区块”将会取代当今的短代码,自定义 HTML 或“神秘肉”嵌入模式。」
—Matt Mullenweg

One thing that sets WordPress apart from other systems is that it allows you to create as rich a post layout as you can imagine — but only if you know HTML and CSS and build your own custom theme. By thinking of the editor as a tool to let you write rich posts and create beautiful layouts, we can transform WordPress into something users love WordPress, as opposed something they pick it because it’s what everyone else uses.

Gutenberg looks at the editor as more than a content field, revisiting a layout that has been largely unchanged for almost a decade.This allows us to holistically design a modern editing experience and build a foundation for things to come.

Here’s why we’re looking at the whole editing screen, as opposed to just the content field:

  1. The block unifies multiple interfaces. If we add that on top of the existing interface, it would add complexity, as opposed to remove it.
  2. By revisiting the interface, we can modernize the writing, editing, and publishing experience, with usability and simplicity in mind, benefitting both new and casual users.
  3. When singular block interface takes center stage, it demonstrates a clear path forward for developers to create premium blocks, superior to both shortcodes and widgets.
  4. Considering the whole interface lays a solid foundation for the next focus, full site customization.
  5. Looking at the full editor screen also gives us the opportunity to drastically modernize the foundation, and take steps towards a more fluid and JavaScript powered future that fully leverages the WordPress REST API.


Blocks are the unifying evolution of what is now covered, in different ways, by shortcodes, embeds, widgets, post formats, custom post types, theme options, meta-boxes, and other formatting elements. They embrace the breadth of functionality WordPress is capable of, with the clarity of a consistent user experience.

Imagine a custom “employee” block that a client can drag to an About page to automatically display a picture, name, and bio. A whole universe of plugins that all extend WordPress in the same way. Simplified menus and widgets. Users who can instantly understand and use WordPress — and 90% of plugins. This will allow you to easily compose beautiful posts like this example.

Check out the FAQ for answers to the most common questions about the project.


Posts are backwards compatible, and shortcodes will still work. We are continuously exploring how highly-tailored metaboxes can be accommodated, and are looking at solutions ranging from a plugin to disable Gutenberg to automatically detecting whether to load Gutenberg or not. While we want to make sure the new editing experience from writing to publishing is user-friendly, we’re committed to finding a good solution for highly-tailored existing sites.

Gutenberg 的开发计划阶段

Gutenberg has three planned stages. The first, aimed for inclusion in WordPress 5.0, focuses on the post editing experience and the implementation of blocks. This initial phase focuses on a content-first approach. The use of blocks, as detailed above, allows you to focus on how your content will look without the distraction of other configuration options. This ultimately will help all users present their content in a way that is engaging, direct, and visual.

These foundational elements will pave the way for stages two and three, planned for the next year, to go beyond the post into page templates and ultimately, full site customization.

Gutenberg is a big change, and there will be ways to ensure that existing functionality (like shortcodes and meta-boxes) continue to work while allowing developers the time and paths to transition effectively. Ultimately, it will open new opportunities for plugin and theme developers to better serve users through a more engaging and visual experience that takes advantage of a toolset supported by core.


Gutenberg 由许多贡献者和志愿者构建。 请在 中查看完整的名单。

注意:这个插件主要以英文撰写,并由贡献者翻译成中文。如果您觉得此插件的翻译可以进一步改进,或者您想提供翻译,请在 上提交您的翻译。


This plugin provides 17 blocks.




我们很想听听您的错误报告,功能建议和任何其他反馈!请在 GitHub 问题页面搜索或打开一个新的存在的问题(已英语为主)。虽然我们会尽量分流问题的报道在插件论坛,但是在 GitHub 库保持一切都集中您会得到一个更快的响应(还帮助我们减少重复劳动)。


We’re calling this editor project “Gutenberg” because it’s a big undertaking. We are working on it every day in GitHub, and we’d love your help building it.You’re also welcome to give feedback, the easiest is to join us in our Slack channel, #core-editor.

See also

Where can I read more about Gutenberg?


This is really nice solution. I like it much more then classic editor.
This is a nightmare. I can't do anything I want with. Diverse HTML tags are taken out of your control entirely. If you want complete control over your HTML, then you need to save and maintain your content off-site, edit your HTML there, paste it into the Gutenberg-editor, save and view. If you want to change your content later, the you will have to relocate the matching html code you had saved somewhere on your computer... Is this supposed to be innovation? This is a one-way HTML editor. Once you paste your HTML into Gutenberg, then half of it is gone after saving...
How do you cut and paste plain text and then format? Not easy - when you create a new para block it adds an extra line. No easy way to convert HTML back and forth without it screwing up. Doesn't recognize <i> tags when pasting. How do you insert a block? Does weird reformatting when you don't expect it. User interface is totally confusing - the so-called 'clean UI' just means there are no visual prompts. How do you superscript or subscript? Shall I go on? Total fail. This is an example of developers trying to be clever but not relying on user input for their design/coding decisions.
Since I installed Gutenberg I felt in love again with WordPress. Everything is a shortcut now and it's amazing.
Read all 3,008 reviews

Contributors & Developers

“Gutenberg(古腾堡)” is open source software. The following people have contributed to this plugin.


“Gutenberg(古腾堡)” has been translated into 46 locales. Thank you to the translators for their contributions.

Translate “Gutenberg(古腾堡)” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.


New Features

  • Add a new Buttons block. #17352
  • Support adding links to Media & Text block image. #18139
  • Navigation block: Support changing the font size. #19127
  • Gallery block: Add images size selector. #18581


  • Improve the block inserter search algorithm. #19122
  • Improve the block placeholders design and responsiveness. #18745
  • Navigation mode: Auto-enable when tabbing to the block list with an existing block selection. #19238 #19298
  • Use tabs for gradient and color. #19133
  • Add “download” keyword to the File block. #18995
  • Add “poem” keyword to the Verse block. #19355
  • Convert to blocks:
    • preserve text alignment. #19097
    • Skip shortcode if not on its own line. #19059
  • Writing flow: Improve tabbing for Edit mode. #19235
  • Use Popover for the block toolbar. #18779
  • Improve the block multi-selection styles. #19094 #19121
  • Support reduced-motion for Social Links transitions. #18750
  • Use the default cursor for Select Tool #19157
  • Round position attributes on cover focal point save. #19183
  • Remove block inserter shortcuts. #19045
  • Navigation block:
    • Clarify the placeholder label. #19105
    • Removes the reusable block option from the items. #19250
    • Sub-items white background adjustment. #18976
  • Adjustments to the welcome guide. #19195
  • Audio block: Don’t render an empty audio tag. #18850
  • Make validation of block html tags and attributes case insensitive #19207
  • Block examples: concatenate strings and add translators notes. #19048
  • Show the trash button as a link. #19131
  • Removed the bottom-margin for the RadioControl component. #19340
  • Copy:
    • Capitalize “Manager” in Block Manager. #19375
    • Expand on sentence case usage. #18758 #19377
    • Update the copy of the Experiments page #18233
    • Removes title case from alignments for text and image. #18757
    • Unify not capitalizing the heading for each of the attributes. #19374
    • Updates description of the navigation block. #19098


  • Remove the BlockAsyncRenderProvider and render parents asynchronously #19343


  • A11y:
    • Make text alignment items radio menu items. #19233
    • Add group role to the block wrapper element. #19213
    • Prevent tabbing to the block drag handle. #19211
    • Add a label attribute to the Social Icons block. #18651
    • Improve Welcome guide and modal component. #19261 #19290
  • Pasting:
    • Content that results in a new block shouldn’t be treated as inline content. #19084
    • Preserve inline images. #19064
    • Remove trailing br elements. #19035
    • Remove windows paste markers. #19040
    • Strip HTML formatting space for inline text. #19043
    • Apply active formats when pasting inline. #14815
  • Rich Text:
    • Fix applying a format across 2 other formats. #19053
    • Fix using composed characters on Safari. #19171
  • Fix block navigation using the up arrow key. #19135
  • Fix Welcome Guide modal display for Internet Explorer. #19201
  • Fix Gallery block crashing on the contributor role. #19060
  • Only show available image sizes for Image and Gallery blocks. #19301
  • Remove the circle mask style from the Image block, and add a “rounded” style instead. #19028
  • Fix the Jest Preset Default package: Update preset file extension for inclusion in NPM deployments. #19306
  • Fix the Base Styles package: Import colors into variables. #19159
  • Limit the Next Page (Page Break) block to root level only. #18260
  • Navigation mode: fix reverse tabbing to the post title. #19305
  • Reposition Popovers on click. #19268
  • Fix RangeControl initialPosition prop to accept 0 as a value. #18611 #19202
  • CustomSelectControl: Use items width instead of 100%. #19150
  • Verse block: fix white space. #19173
  • Add missing i18n to the Latest Posts block settings strings #19032
  • Fix ColorPicker alpha value normalization. #18991
  • Fix Post title encoding. #19187
  • Fix dates alignments in the picker. #19294
  • Media Replace Flow: Don’t show the URL option unless there is a handler. #19063
  • Popover: don’t render fallback anchor if anchorRef is defined. #19308
  • Fix cursor position when splitting blocks with IME keyboard. #19055
  • URLInput: Avoid showing the suggestions loader when disabled. #18979
  • Translate block example strings. #18162
  • Writing flow: simplify & fix tabbing out of block. #19312

New APIs:

  • Button component:
    • Support the icon prop and use a consistent button height. #19193 #19366 #19123 #19058
    • Deprecate IconButton and replace its usage with Button. #19299 #19241
    • Support isPressed prop in Button and SVG components. #17748
  • New the @wordpress/keyboard-shortcuts package:
  • New React hook: useInstanceId. #19091
  • Support running arbitrary commands on the @wordpress/env containers and use it for linting and server registered fixtures. #18986
  • Font Size Picker: Add default size #18273


  • Full Site Editing:
    • Add package with barebones site editor screen. #19054
    • Add Multi-Entity Saving flow. #18029 #19155
  • Widgets screen & customizer:
    • Fix Customiser block editor crash. #19023
    • Fix Drag & Drop not working on the widgets screen. #19029
  • Allow parent Block to consume child Block’s toolbar. #18440
  • Allow disabling the Block UI. #18173
  • Block Directory:
    • Update the regular expression that determines whether the plugin is using an img URL or an icon slug. #19316
    • Use the block’s title for alt text on block directory plugin items. #19263



  • Block Editor: Remove legacy “editor-” class name compatibility. #19050(
  • Block Editor: Test ContrastChecker notices by string comparison. #19169
  • Fix useColors crashes on storybook. [#19046]
  • Data: Remove unused forceRender argument #19206
  • Define useSelect dependencies properly. #19044
  • Deprecate @wordpress/nux package. #18981
  • E2E Test Utils: Remove empty, unused KeyboardMode file. #19166
  • Popover: remove buffer options #19283
  • Refactor the MediaReplaceFlow component to use Dropdown. #19126
  • Remove unused is-hovered class from the block wrapper. #19390
  • RichText:
    • Rewrite withFilters with hooks. #19117
    • split out boundary style calculation. #19319
  • WritingFlow: rewrite with hooks. #19393
  • Project management: Add prepublish packages command for npm releases. #19214
  • Remove unused blocks-font-size classname. #19208
  • Add a pre-commit hook to check whether API docs are updated. #18820
  • Add mechanism to set a width on withViewportMatch. #17085
  • Add minimum and maximum values to the Gallery columns attribute. #16314
  • Include demo block templates in build ZIP. #19072
  • Fix CSS Coding Standards issue. #19272
  • Resolve WordPress package type imports. #18927
  • Add e2e tests:
    • Splitting and merging text. #19049
    • InnerBlocks renderAppender. #14996
    • Navigation block. #19189
    • Validate embed rendering before proceeding to next #19042
  • Add unit tests to the useViewportMatch and useMediaQuery React hooks. #19019