What is the Gutenberg update, and are you prepared?

If you do not follow WordPress news and updates closely you may not have heard about Gutenberg, WordPress’ latest update. It is an update that has a lot of the Web Development industry worried because of how radical it’s changes seem to be. But what exactly is Gutenberg, and what is all the fuss about?

Gutenberg promises to offer new ways to edit content within a WordPress site. It will replace the current content editor and implement many new features such as:

  • Shortcodes
  • Widgets
  • Menus
  • And even custom fields

This will all be a client-side interface that was built with React. The Gutenberg editor will feature a block based system to build up content.

Currently, Gutenberg is being developed as a featured plugin on GitHub, it has been scheduled for core release alongside the next WordPress version update (version 5.0). The estimated time for release is the early half of 2018. Developers are free to download Gutenberg early to tinker around with it and its new features. This will give developers a better understanding on how these new changes will effect their current sites. The link for Gutenberg’s GitHub is:
https://github.com/WordPress/gutenberg/

Gutenberg will prove to be an important step for publishers. This is because it aims to reduce the visual difference between how content is crafted and appears within the admin editor, and how it is rendered on the frontend. Gutenberg also opens up the possibility of streamlining and connecting various parts of the site building process, like the customizer and widgets. This aims to reduce development time and makes customizing a site easier for those that are not code savvy.

So, you might be thinking that so far Gutenberg sounds great, but there are some obvious downfalls with the update. One of which being the fact that such a massive overhaul of a lot of WordPress’ core features will inevitably cause breakages on sites. These breaks will most likely not be something as serious as white screening, or frontend breaks, but once a site is updated to 5.0, users will have a broken experience the next time they edit a post, especially if their site relies on custom meta boxes. Developers will need to go through each of their sites thoroughly to make sure everything is still working as intended and users are still easily able to edit/create content. Agencies will need to be extra careful to make sure that none of their clients experience issues or downtime.

Because Gutenberg is going to be built using a new framework, the barrier for entry is going to be higher for new developers. The framework is an extremely critical piece of the WordPress core, so changing it to a new one is bound to come with its own set of problems. This has happened in the past WordPress 3.5 launched with a new media manager, built with Backbone and landed with little to no documentation, and a steep learning curve for contributors and developers of media-related plugins. Gutenberg has the potential to repeat the mistakes of the past. In any case, it will reduce the amount of people that are able to contribute to it. This is because Gutenberg will demand you learn React in-depth. This will place a burden on plugin developers because they will need to learn, adapt and update their plugins in preparation of this update. Larger plugin publishers should be fine, but solo or smaller agencies simply will not have the time or resources to make their plugins compatible right at launch.

In preparation to this launch, developers should set up test domains where they can work with Gutenberg and get familiar with how it works and interacts with pre-existing plugins and custom code. It is also recommended that sites should enable the Classic Editor and configure it to revert to the old editor. This will mean come 5.0 things will work as is. If your site has Custom Post Types, a developer can go into the backend and stop Gutenberg from hijacking the usual UI. The easiest way would be to go into your functions.php and add this filter:

add_filter( ‘gutenberg_can_edit_post_type’, ‘my_gutenberg_can_edit_post_types’ );
function my_gutenberg_can_edit_post_types( $can_edit, $post_type ) {
If ( in_array( $post_type, array( ‘a_post_type’, ‘another_post_type’ ) ) {
return false;
}

return $can_edit;
}