What Are Gutenberg for WordPress Blocks?

GutenbergIn the last post, I mentioned blocks a fair bit, but maybe didn’t explain blocks well enough. WordPress has an FAQ which describes blocks:

What are “blocks” and why are we using them?
The current WordPress editor is an open text window–it’s always been a wonderful blank canvas for writing, but when it comes to building posts and pages with images, multimedia, embedded content from social media, polls, and other elements, it required a mix of different approaches that were not always intuitive:

  • Media library/HTML for images, multimedia and approved files.
  • Pasted links for embeds.
  • Shortcodes for specialized assets from plugins.
  • Featured images for the image at the top of a post or page.
  • Excerpts for subheadings.
  • Widgets for content on the side of a page.
  • As we thought about these uses and how to make them obvious and consistent, we began to embrace the concept of “blocks.” All of the above items could be blocks: easy to search and understand, and easy to dynamically shift around the page. The block concept is very powerful, and if designed thoughtfully, can offer an outstanding editing and publishing experience.

Basically, every section of a post is a block; headings, paragraphs, images, lists, galleries are all separate blocks. WordPress also recommend that all meta field and shortcodes are upgraded to blocks (this last is more one for plugin developers).

Unfortunately, blocks, unlike current standard plugins, are not created with PHP, but Javascript and a framework such as React JS (which Gutenberg itself uses).

This massively decreases the accessibility of creating extensions for WordPress as PHP is easier to learn than Javascript. Whether you think this is a good or bad thing depends on your view of the world. People often deride PHP, but it has meant a proliferation of plugins available so almost any requirements you might have can be met by an existing plugin. Unfortunately, not all of these plugins are high quality, so some care must be taken with the plugins used.

The bar has been raised for accessibility in that Javascript is harder to learn than PHP, so some of the poorer developers may drop out, but it also means that the slightly better developers will be writing bad Javascript blocks, so the overall quality may not change at all.

What you’re likely to have is less plugins providing blocks.