Empêcher l’utilisation du nouvel éditeur sur des templates ou ID spécifiques

Type de snippet : Editeur Gutenberg

L’utilisation de l’extension « Classic Editor » depuis le passage à la version 5 de WordPress, permet de conserver la possibilité d’éditer du contenu soit avec l’éditeur comme il existait auparavant, soit avec le nouvel éditeur.

Pour autant, on peut avoir besoin :

  1. de donner ce choix à son client sauf sur certains templates de page, ou certains contenus spécifiques en visant leur ID.
  2. de faire en sorte de ne pas mettre l’éditeur quelqu’il soit (ancien ou nouveau) dans la rédaction d’une front page par exemple pour n’utiliser que des champs personnalisés prédéfinis à remplir.

Pour clarifier le 2ème point, dans mon cas, j’utilise ACF pour orienter le contenu à ajouter dans une front-page. C’est une manière de verrouiller la manière dont la page d’accueil doit se présenter. En créant des champs personnalisés spécifiques à la rédaction de cette page, cela permet d’assurer un rendu de page bien spécifique. Le client gagne du temps en rédaction car  il a juste à ajouter le texte attendu aux endroits prévus pour ça. La page n’est alimentée en contenu que par ces champs personnalisés.

Avant de passer à la version 5 de WordPress , pas de soucis, on pouvait faire en sorte de demander à ACF de ne pas mettre à disposition l’éditeur, mais uniquement les métabox ACF. Ergonomiquement c’était intéressant, pas de présence de zones superflues.

Aujourd’hui, on ne peut pas faire « disparaitre » la zone d’édition Gutenberg. Même si ajouter du contenu à l’intérieur ne représente en soit aucun problème, vu que son contenu n’est pas récupéré pour l’affichage en front, cela constitue quand même un problème au niveau ergonomie. Si le client switche sur le nouvel éditeur pour l’édition de la front page, comment lui expliquer qu’une grande partie de la zone de rédaction de la page d’accueil ne sert à rien !!!

Du coup j’avais besoin de faire en sorte que la zone d’édition ne puisse pas s’afficher pour la rédaction d’une page spécifique, donc d’invalider la possibilité de switcher entre l’éditeur classique et le nouvel éditeur.

La solution m’a été apportée par Bill Erickson, voici son gist : https://gist.github.com/billerickson/529bb94ca3aeb45fe875cbedcc3ec4f2#file-disable-editor-php

Et son article à ce sujet : https://www.billerickson.net/disabling-gutenberg-certain-templates/

J’utilise donc l’extension Classic Editor sur le site du client, en lui donnant la possibilité de choisir son mode d’édition sur tous les contenus sauf pour la front-page en utilisant le filtre use_block_editor_for_post_type.

On récupère l’ID de la front page avec get_option( 'page_on_front' )

Au niveau du tableau de bord admin, on a toujours bien le choix entre les deux modes d’édition pour la page concernée qui s’affichent. Mais peu importe le choix, c’est l’éditeur classique qui l’emporte. En surcouche, je peux donc continuer à demander à ACF de faire en sorte que l’éditeur classique ne s’affiche pas. Mais attention, cette solution n’est pas forcément perenne et dépend complètement du maintien de « Classic Editor ». Mais d’ici là (en 2022 j’ai cru lire) les choses peuvent beaucoup évoluer, et d’autres possibilités s’offriront à nous.

J’en ai d’ailleurs une qui se profile déjà. Il semblerait qu’il soit possible avec le nouvel éditeur de précharger un modèle de mise en page de blocs, et de le verrouiller. Le principe reviendrait alors au même que l’utilisation que j’ai d’ ACF dans ce cas précis. Par contre cela suppose d’aussi apprendre à créer des blocks personnalisés. Si cette manière de procéder vous intéresse, vous trouverez la réponse dans la Formation à la création de blocs Gutenberg de Maxime Bernard Jacquet sur Capitaine WP. Excellente formation soit dit en passant 😉