Gutenberg: Den nye editor i WordPress

Letters

2. august, 2018, blev WordPress version 4.9.8 udgivet. Den kom med valget om man vil holde fast i den traditionelle editor, TinyMCE, eller om man ville prøve den nye editor, Gutenberg. Da jeg selv så den første gang, for et års tid siden, var jeg bekymret for om jeg stadig vil kunne bruge den funktionalitet og de plugins jeg bruger i WordPress, til stadig at kunne udvikle websites i det omfang jeg gør. Især da Gutenberg-editoren vil blive en core feature i WordPress 5.0.

Gutenberg Editor

Gutenberg editoren er en modul-/block-baseret editor, hvor der i udgangspunktet er en masse moduler med på forhånd som f.eks. YouTube-modul, kode-modul m.m. Den er lavet i JavaScript-biblioteket React og bruger WordPress’ rest-API.

Nu kom opdateringen til WordPress 4.9.8 så og min første tanke, at alle de sites jeg tidligere har lavet skal fortsætte med at bruge den traditionelle editor. Men på samme tid forsvandt mine bekymringer og tilbage står nu min nysgerrighed. Derfor har jeg kastet mig ud i at bruge Gutenberg fuldt ud i det næste projekt jeg laver. Derfor vil dette post også blive opdateret løbende som jeg får flere erfaringer med Gutenberg og med at udvikle website i WordPress med Gutenberg som editor.

Herunder kan man se en video, hvor jeg prøver Advanced Custom Fields-pluginnet sammen med Gutenberg

WooCommerce

WooCommerce er den måske mest brugte e-handelsløsning til WordPress. WooCommerce understøtter ikke Gutenberg i redigering af varer (i hvert fald ikke ud af boksen), men der er allerede udgivet et plugin der gør, at man kan vise varer på sider og indlæg, hvor man bruger Gutenberg. Holdet bag WooCommerce har udgivet en så kaldt “block”

Ninja Forms

Ninja Forms understøtter Gutenberg med en block / et modul.

Custom post types

I fremtiden vil Gutenberg bliver standard-editor for custom post types, men skal man i gang i dag, så skal man bruge særlige argumenter når man registrerer en ny post type. show_in_rest skal sættes til true og i argumentet supports skal editor sættes. Se eksempel her under.

register_post_type('event', array(
  'labels'  => array(
    'name'  =>  'Events',
  ),

  'show_in_rest' => true,
  'supports' => array('title', 'editor', 'thumbnail', 'revisions'),

  'public'  =>  true,
  'show_in_admin_bar' =>  true,
  'menu_position' =>  2,
  'menu_icon' =>  'dashicons-format-audio',
));