WOLF - WordPress Posts Bulk Editor and Manager Professional

Erreur « No any post type permitted to edit for site editors » : la solution

Le message No any post type permitted to edit for site editors. Ask please site administrators for details! signifie que WOLF considère l'utilisateur connecté comme un éditeur du site et ne trouve aucun type de contenu que les éditeurs du site soient autorisés à modifier. La page n'affiche rien d'autre. Dans la plupart des cas, la solution tient en un réglage qu'un administrateur renseigne une fois pour toutes. Lorsque c'est un administrateur qui voit le message, ou qu'un rôle personnalisé ne peut pas ouvrir WOLF du tout, la cause se trouve dans la configuration des rôles de l'utilisateur. Cette page couvre ces trois cas.

Ce que signifie « No any post type permitted to edit for site editors »

WOLF répartit les utilisateurs en deux groupes :

  • Les administrateurs travaillent avec tous les types de contenu et toutes les colonnes, et voient l'onglet Champs personnalisés (Meta Fields) ainsi que les réglages qui contrôlent les éditeurs du site.
  • Les éditeurs du site sont tous les autres utilisateurs autorisés à ouvrir WOLF, à commencer par le rôle éditeur (editor). Ils n'obtiennent que les types de contenu listés dans Réglages (Settings) → Types de contenu des éditeurs du site (Site editors post types), et seulement les colonnes qu'un administrateur a marquées comme visibles pour eux.

Le champ Types de contenu des éditeurs du site (Site editors post types) est vide sur une nouvelle installation. Une liste vide signifie zéro type de contenu : le premier éditeur qui ouvre WOLF Bulk Editor voit donc l'erreur tant qu'un administrateur n'a pas rempli le champ.

Solution : renseigner « Types de contenu des éditeurs du site »

  1. Connectez-vous en tant qu'administrateur et ouvrez WOLF Bulk Editor → Réglages (Settings).
  2. Dans la colonne Réglages généraux (General settings), trouvez Types de contenu des éditeurs du site (Site editors post types).
  3. Saisissez les identifiants des types de contenu avec lesquels les éditeurs peuvent travailler, séparés par des virgules, par exemple post,page.
  4. Cliquez sur Enregistrer tous les réglages (Save all settings). L'éditeur recharge la page de WOLF et obtient le tableau.

Quatre points déterminent si cela fonctionne :

  • Des identifiants, pas des noms. Saisissez page, pas Pages. L'identifiant d'un type de contenu personnalisé figure dans l'adresse de son écran de liste : edit.php?post_type=property correspond à property.
  • Pas d'espaces. WOLF compare le texte à l'identique. Avec post, page, la seconde entrée commence par une espace, ne correspond à rien, et les éditeurs n'obtiennent que les articles. Signe typique : l'éditeur sélectionne les pages dans le sélecteur de type de contenu et le tableau revient sans cesse aux articles.
  • Le premier identifiant est celui par défaut. Lorsque le type de contenu courant d'un éditeur ne figure pas dans la liste, WOLF le bascule sur le premier identifiant.
  • Seulement les types que WOLF liste déjà. Le champ restreint la liste de types que voit un administrateur ; il ne peut pas l'élargir. Un type de contenu que son extension a enregistré comme non public doit d'abord être ajouté pour tout le monde, comme l'explique l'article sur le type de contenu personnalisé absent de l'éditeur en masse.

Décidez ensuite ce que les éditeurs peuvent modifier. Dans l'onglet Réglages (Settings), chaque colonne dispose de la case visible pour l'éditeur du site (visible for the site editor) ; les colonnes sans cette case sont masquées pour les éditeurs et ceux-ci ne peuvent pas les modifier, ni dans le tableau ni en masse. Voir comment limiter ce qu'un éditeur du site peut modifier. Les champs meta ne sont ajoutés que par les administrateurs : les éditeurs n'ont pas l'onglet Champs personnalisés (Meta Fields).

Rôles personnalisés : pas de menu WOLF, ou « vous n'êtes pas autorisé à accéder à cette page »

WOLF s'ouvre pour les utilisateurs qui ont le rôle administrateur (administrator) ou éditeur (editor), ou un rôle ajouté par l'un de deux filtres. Les rôles créés par des extensions d'adhésion, de cours, de forum ou de gestion des rôles ne figurent pas dans cette liste : leurs utilisateurs n'ont donc pas le menu WOLF Bulk Editor, et le lien direct répond par le message de WordPress Désolé, vous n'êtes pas autorisé à accéder à cette page (Sorry, you are not allowed to access this page). Le menu exige aussi la capacité publish_posts, que possèdent les éditeurs et les auteurs, mais pas les contributeurs.

Cherchez d'abord l'identifiant du rôle : dans Utilisateurs (Users), cliquez sur le rôle au-dessus de la liste des utilisateurs ; l'adresse se termine par ?role= suivi de l'identifiant. Choisissez ensuite le filtre qui correspond à ce que le rôle doit pouvoir faire.

Droits complets dans WOLF : wpbe_permit_special_roles

Un rôle ajouté ici est traité comme un administrateur à l'intérieur de WOLF : toutes les colonnes, l'onglet Champs personnalisés (Meta Fields) et les réglages des éditeurs du site. Ne l'accordez qu'à des rôles auxquels vous confieriez l'ensemble du contenu du site.

/*
 * WOLF: give the role "content_manager" administrator rights in the bulk editor.
 * Child theme functions.php or a code snippets plugin.
 */
add_filter('wpbe_permit_special_roles', function ($roles) {
    $roles[] = 'content_manager';
    return $roles;
});

Conservez administrator dans le tableau : le filtre remplace la liste par défaut, de sorte qu'une fonction qui ne renverrait que votre rôle personnalisé exclurait les véritables administrateurs. Une limite subsiste : WOLF ne débloque la liste complète des types de contenu que pour les comptes qui ont eux-mêmes le rôle administrator. Les utilisateurs d'un rôle personnalisé autorisé obtiennent les types de contenu de Types de contenu des éditeurs du site (Site editors post types) ; renseignez donc aussi ce champ, sinon ils voient la même erreur.

Uniquement ses propres contenus : wpbe_author_area_roles

Un rôle ajouté ici fonctionne comme un éditeur du site limité à ses propres contenus : le tableau n'affiche que les contenus dont l'utilisateur est l'auteur, la colonne Auteur (Author) ne peut pas être modifiée, et seules les colonnes marquées visible pour l'éditeur du site (visible for the site editor) peuvent l'être. Cela convient au rôle auteur (author) ou à un rôle de rédacteur personnalisé.

/*
 * WOLF: let authors bulk edit their own posts.
 * Child theme functions.php or a code snippets plugin.
 */
add_filter('wpbe_author_area_roles', function ($roles) {
    $roles[] = 'author';
    return $roles;
});

Ces utilisateurs n'obtiennent eux aussi que les types de contenu de Types de contenu des éditeurs du site (Site editors post types).

Quand un administrateur voit l'erreur ou perd les outils d'administration

WOLF lit les rôles d'un compte de deux façons. Pour la liste des types de contenu, il vérifie si le compte possède le rôle administrator, tout simplement. Pour tout le reste (l'onglet Champs personnalisés (Meta Fields), les réglages des éditeurs du site, la modification de toutes les colonnes, le choix de n'importe quel type de contenu), il compare le premier rôle du compte à wpbe_permit_special_roles. Un compte administrateur normal a exactement un rôle, et les deux vérifications concordent donc. Les extensions de gestion des rôles et celles qui ajoutent leurs propres rôles aux utilisateurs peuvent briser cette concordance de trois façons, chacune avec son symptôme :

Ce qui est arrivé au compteCe que vous voyez dans WOLF
Un autre rôle a été ajouté et passe en premier, par exemple un rôle de forumPas d'onglet Champs personnalisés (Meta Fields), pas de champ Types de contenu des éditeurs du site (Site editors post types), le sélecteur de type de contenu revient sans cesse à un seul type
Des capacités ont été accordées directement au compte, et non par son rôleLes mêmes symptômes, et le journal de débogage affiche Undefined offset: 0 (PHP 7) ou Undefined array key 0 (PHP 8) depuis des fichiers de WOLF comme ext/meta/meta.php
Le rôle d'administrateur a été remplacé par un autre rôle, par exemple une copie avec un autre identifiantAucun menu WOLF ; ou, si ce rôle est un éditeur ou est autorisé par un filtre, le message d'erreur, car le compte n'a plus le rôle administrator

Pour voir ce que WOLF voit, ajoutez brièvement cet extrait et ouvrez la page de WOLF :

/*
 * Temporary check: prints the roles of the logged-in user on the WOLF page.
 * Code snippets plugin; remove it after the check.
 */
add_action('admin_notices', function () {
    if (isset($_GET['page']) && $_GET['page'] === 'wpbe') {
        $user = wp_get_current_user();
        echo '<div class="notice notice-info"><p>' . esc_html(print_r($user->roles, true)) . '</p></div>';
    }
});

Un administrateur sain affiche Array ( [0] => administrator ). Si un autre rôle figure sous [0], retirez-le de ce compte, ou faites de l'administrateur (administrator) le rôle principal dans votre extension de gestion des rôles. Si administrator n'apparaît que sous [1] ou plus loin, sans rien sous [0], retirez les capacités attribuées au compte lui-même ; les capacités appartiennent au rôle. Si administrator est absent, rendez au compte le véritable rôle d'administrateur. Lorsque le rôle supplémentaire est un rôle que seuls les administrateurs détiennent, comme un rôle de gestionnaire de forum, l'ajouter à wpbe_permit_special_roles est également une solution valable. Ne modifiez pas les fichiers de l'extension : la cause se trouve dans le compte, et les modifications sont perdues à la prochaine mise à jour.

Liste de contrôle

  • Types de contenu des éditeurs du site (Site editors post types) contient des identifiants séparés par des virgules, sans espaces ; le premier est celui par défaut.
  • Chaque identifiant qui s'y trouve apparaît dans le sélecteur de type de contenu de l'administrateur.
  • Les rôles personnalisés sont ajoutés avec wpbe_permit_special_roles ou wpbe_author_area_roles et possèdent la capacité publish_posts.
  • Le compte administrateur affiche [0] => administrator dans la vérification des rôles.
  • Les colonnes que les éditeurs peuvent modifier sont marquées visible pour l'éditeur du site (visible for the site editor).

Si tout est en place et que le message apparaît encore, ouvrez un sujet sur le forum d'assistance de WOLF en indiquant le résultat de la vérification des rôles et le contenu de Types de contenu des éditeurs du site (Site editors post types).