Depuis le passage à l’éditeur de site et donc à l’éditeur Gutenberg pour mes articles et mes pages, j’étais confronté à une erreur quand j’essayais de changer les catégories ou de modifier les étiquettes d’un article ou d’une page. Chose bizarre, cela fonctionnait très bien si je le faisais depuis la liste des articles (ou des pages).

Voici le message en question
Désolé, vous n’avez pas l’autorisation d’attribuer les termes proposés. En anglais, cela donne « Sorry, you are not allowed to assign the provided terms. »
En cherchant un peu dans la console de Firefox, j’ai trouvé une erreur en lien avec l’API REST de WordPress. Toutes les manipulations que j’ai tentées n’ont rien arrangé à mon problème car il se trouve que l’API fonctionne très bien et que le soucis ne venait pas de là.

En creusant plus loin, je suis tombé sur ce post sur le forum de WordPress qui correspond en tout point à ma situation. De là, j’ai commencé à comprendre ce qui se passait. Ce problème est ancien et affecte uniquement les installations multisites.
En fait, sur notre installation, il existe des termes (catégories, mots clés, menus, etc) qui sont communs et portent le même ID. Si vous utilisez l’extension « Classic Editor » , tout se passe très bien, par contre si vous utilisez Gutenberg et donc la API REST pour dialoguer avec la base de données, vous vous retrouvez avec une erreur 403 (ticket 52423 et ticket 46297).
Plugin WP-Find-Shared-Terms
J’ai ensuite cherché un moyen de rectifier le tir et j’ai installé l’extension wp-find-shared-terms censée m’aider à trouver les termes qui posent problème et régler le soucis en les « splittants ». La première étape a bien fonctionné. Voici les vingt termes retournés pour mon blog :

Malheureusement pour moi, quand je lui ai demandé « Split Shared Terms » , il n’a rien fait me renvoyant un message me disant que ça n’était pas utile de faire le travail.
Ma solution
J’ai donc dû le faire manuellement dans la base de données. C’était possible parce que je n’avais qu’une quarantaine de termes à traiter sur les cinq sites que compte notre installation. Avant de me lancer, j’ai fait une sauvegarde de la base de données.
- J’ai retiré les étiquettes qui posaient soucis sur tous les articles et toutes les pages concernées. C’est faisable facilement depuis la liste des posts à l’aide des filtres sur les étiquettes.
- J’ai créé des doublons pour les catégories incriminées (Informations2, etc) et j’ai attribué, toujours en passant par la liste des posts, ces nouvelles catégories aux articles et aux pages.
- J’ai supprimé les termes portant le même identifiant (12 pour le mot Informations) dans la table wp_x_terms de mon blog et également dans la table wp_sitecategories de l’installation multisite. C’était impossible de le faire depuis l’interface d’administration (erreur de droits similaire avec l’erreur dans l’éditeur Gutenberg).
- J’ai renommé les catégories créées au point 2 : Informations2 > Informations.




J’espère ne pas avoir fait de bêtises, en tout cas, le message d’erreur est bien parti. J’ai ensuite désactivé le plugin Classic Editor, car certains des mots qui posaient problèmes avaient été créés récemment. Je me suis donc dit que si je ne voulais pas avoir à refaire rapidement ce travail, il fallait obliger tous les rédacteurs de nos blogs à utiliser les blocs.
J’espère que ce retour d’expérience pourra aider des collègues dans la galère avec leur WordPress Mu !
Kenavo.





Laisser un commentaire