WOLF - WordPress Posts Bulk Editor and Manager Professional

„No any post type permitted to edit for site editors“: So beheben Sie den Fehler

Die Meldung No any post type permitted to edit for site editors. Ask please site administrators for details! bedeutet, dass WOLF den angemeldeten Benutzer als Website-Redakteur behandelt und keinen Beitragstyp findet, den Website-Redakteure bearbeiten dürfen. Mehr zeigt die Seite nicht an. In den meisten Fällen genügt eine Einstellung, die ein Administrator einmalig ausfüllt. Sieht ein Administrator die Meldung oder kann eine benutzerdefinierte Rolle WOLF gar nicht öffnen, liegt die Ursache in der Einrichtung der Benutzerrollen. Diese Seite behandelt alle drei Fälle.

Was „No any post type permitted to edit for site editors“ bedeutet

WOLF teilt Benutzer in zwei Gruppen ein:

  • Administratoren arbeiten mit jedem Beitragstyp und jeder Spalte und sehen den Tab Meta-Felder (Meta Fields) sowie die Einstellungen, die die Website-Redakteure steuern.
  • Website-Redakteure sind alle anderen Benutzer, die WOLF öffnen dürfen, allen voran die Rolle Redakteur (editor). Sie erhalten nur die Beitragstypen, die unter Einstellungen (Settings) → Beitragstypen für Website-Redakteure (Site editors post types) aufgeführt sind, und nur die Spalten, die ein Administrator für sie als sichtbar markiert hat.

Das Feld Beitragstypen für Website-Redakteure (Site editors post types) ist bei einer neuen Installation leer. Eine leere Liste bedeutet null Beitragstypen, daher sieht der erste Redakteur, der WOLF Bulk Editor öffnet, den Fehler, bis ein Administrator das Feld ausfüllt.

Lösung: „Site editors post types“ ausfüllen

  1. Melden Sie sich als Administrator an und öffnen Sie WOLF Bulk Editor → Einstellungen (Settings).
  2. Suchen Sie in der Spalte Allgemeine Einstellungen (General settings) das Feld Beitragstypen für Website-Redakteure (Site editors post types).
  3. Tragen Sie die Slugs der Beitragstypen ein, mit denen Redakteure arbeiten dürfen, durch Kommas getrennt, zum Beispiel post,page.
  4. Klicken Sie auf Alle Einstellungen speichern (Save all settings). Der Redakteur lädt die WOLF-Seite neu und erhält die Tabelle.

Vier Details entscheiden, ob es funktioniert:

  • Slugs, keine Namen. Tragen Sie page ein, nicht Seiten. Der Slug eines Custom Post Types steht in der Adresse seiner Listenansicht: edit.php?post_type=property bedeutet property.
  • Keine Leerzeichen. WOLF vergleicht den Text exakt. Bei post, page beginnt der zweite Eintrag mit einem Leerzeichen, passt zu nichts, und Redakteure erhalten nur Beiträge. Ein typisches Anzeichen: Der Redakteur wählt in der Umschaltung der Beitragstypen Seiten aus, und die Tabelle springt immer wieder auf Beiträge zurück.
  • Der erste Slug ist der Standard. Steht der aktuelle Beitragstyp eines Redakteurs nicht in der Liste, schaltet WOLF den Redakteur auf den ersten Slug um.
  • Nur Typen, die WOLF bereits auflistet. Das Feld schränkt die Liste der Beitragstypen ein, die ein Administrator sieht; es kann sie nicht erweitern. Ein Beitragstyp, den sein Plugin als nicht öffentlich registriert hat, muss zuerst für alle hinzugefügt werden, wie unter Custom Post Type wird im Bulk Editor nicht angezeigt beschrieben.

Legen Sie als Nächstes fest, was Redakteure ändern dürfen. Im Tab Einstellungen (Settings) hat jede Spalte das Kontrollkästchen für Website-Redakteure sichtbar (visible for the site editor); Spalten ohne Häkchen sind für Redakteure ausgeblendet und können von ihnen weder in der Tabelle noch per Massenbearbeitung geändert werden. Siehe wie Sie einschränken, was ein Website-Redakteur bearbeiten darf. Meta-Felder fügen nur Administratoren hinzu: Redakteure erhalten den Tab Meta-Felder (Meta Fields) nicht.

Benutzerdefinierte Rollen: kein WOLF-Menü oder „not allowed to access this page“

WOLF öffnet sich für Benutzer mit der Rolle Administrator (administrator) oder Redakteur (editor) oder mit einer Rolle, die über einen von zwei Filtern hinzugefügt wurde. Rollen, die von Mitgliedschafts-, Kurs-, Forum- oder Rollenverwaltungs-Plugins angelegt werden, stehen nicht auf dieser Liste, deshalb erhalten ihre Benutzer kein Menü WOLF Bulk Editor, und der direkte Link antwortet mit der WordPress-Meldung Sorry, you are not allowed to access this page. Das Menü setzt außerdem die Berechtigung publish_posts voraus, die Redakteure und Autoren haben, Mitarbeiter dagegen nicht.

Ermitteln Sie zuerst den Slug der Rolle: Klicken Sie unter Benutzer (Users) über der Benutzerliste auf die Rolle; die Adresse endet auf ?role= und den Slug. Wählen Sie dann den Filter, der zu dem passt, was die Rolle tun soll.

Volle Rechte innerhalb von WOLF: wpbe_permit_special_roles

Eine hier hinzugefügte Rolle wird in WOLF wie ein Administrator behandelt: jede Spalte, der Tab Meta-Felder (Meta Fields) und die Einstellungen für Website-Redakteure. Geben Sie sie nur Rollen, denen Sie den gesamten Inhalt der Website anvertrauen würden.

/*
 * 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;
});

Behalten Sie administrator im Array: Der Filter ersetzt die Standardliste, daher sperrt eine Funktion, die nur Ihre benutzerdefinierte Rolle zurückgibt, die echten Administratoren aus. Eine Grenze bleibt bestehen: WOLF schaltet die vollständige Liste der Beitragstypen nur für Konten frei, die selbst die Rolle administrator haben. Benutzer einer zugelassenen benutzerdefinierten Rolle erhalten die Beitragstypen aus Beitragstypen für Website-Redakteure (Site editors post types), füllen Sie dieses Feld also ebenfalls aus, sonst sehen sie denselben Fehler.

Nur eigene Beiträge: wpbe_author_area_roles

Eine hier hinzugefügte Rolle arbeitet als Website-Redakteur, der auf seine eigenen Inhalte beschränkt ist: Die Tabelle zeigt nur Beiträge, bei denen der Benutzer der Autor ist, die Spalte Autor (Author) lässt sich nicht ändern, und nur Spalten, die mit für Website-Redakteure sichtbar (visible for the site editor) markiert sind, können bearbeitet werden. Das passt zur Rolle Autor (author) oder zu einer benutzerdefinierten Schreiberrolle.

/*
 * 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;
});

Auch diese Benutzer erhalten nur die Beitragstypen aus Beitragstypen für Website-Redakteure (Site editors post types).

Wenn ein Administrator den Fehler sieht oder Admin-Werkzeuge verliert

WOLF liest die Rollen eines Kontos auf zwei Arten. Für die Liste der Beitragstypen prüft es, ob das Konto überhaupt die Rolle administrator hat. Für alles andere (den Tab Meta-Felder (Meta Fields), die Einstellungen für Website-Redakteure, die Bearbeitung jeder Spalte, die Wahl eines beliebigen Beitragstyps) prüft es die erste Rolle des Kontos anhand von wpbe_permit_special_roles. Ein normales Administratorkonto hat genau eine Rolle, daher stimmen beide Prüfungen überein. Rollenverwaltungs-Plugins und Plugins, die Benutzern eigene Rollen hinzufügen, können das auf drei Arten stören, jeweils mit eigenem Symptom:

Was mit dem Konto geschehen istWas Sie in WOLF sehen
Eine weitere Rolle wurde hinzugefügt und steht an erster Stelle, zum Beispiel eine ForenrolleKein Tab Meta-Felder (Meta Fields), kein Feld Beitragstypen für Website-Redakteure (Site editors post types), die Umschaltung der Beitragstypen springt immer wieder auf einen Typ zurück
Berechtigungen wurden dem Konto direkt zugewiesen, nicht über seine RolleDieselben Symptome, und das Debug-Log zeigt Undefined offset: 0 (PHP 7) oder Undefined array key 0 (PHP 8) aus WOLF-Dateien wie ext/meta/meta.php
Die Administratorrolle wurde durch eine andere Rolle ersetzt, zum Beispiel eine Kopie mit anderem SlugÜberhaupt kein WOLF-Menü; oder, wenn diese Rolle ein Redakteur ist oder durch einen Filter zugelassen wird, die Fehlermeldung, weil das Konto die Rolle administrator nicht mehr hat

Um zu sehen, was WOLF sieht, fügen Sie kurz dieses Snippet hinzu und öffnen Sie die WOLF-Seite:

/*
 * 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>';
    }
});

Ein gesunder Administrator zeigt Array ( [0] => administrator ). Steht unter [0] eine andere Rolle, entfernen Sie sie von diesem Konto oder machen Sie Administrator (administrator) in Ihrer Rollenverwaltung zur primären Rolle. Erscheint administrator nur unter [1] oder später und unter [0] steht nichts, entfernen Sie die Berechtigungen, die dem Konto selbst zugewiesen wurden; Berechtigungen gehören zur Rolle. Fehlt administrator, geben Sie dem Konto die echte Administratorrolle zurück. Handelt es sich bei der zusätzlichen Rolle um eine, die nur Administratoren innehaben, etwa eine Forum-Keymaster-Rolle, ist es ebenfalls eine gültige Lösung, sie zu wpbe_permit_special_roles hinzuzufügen. Bearbeiten Sie nicht die Plugin-Dateien: Die Ursache liegt im Konto, und Änderungen gehen mit dem nächsten Update verloren.

Checkliste

  • Beitragstypen für Website-Redakteure (Site editors post types) enthält Slugs, durch Kommas getrennt und ohne Leerzeichen; der erste ist der Standard.
  • Jeder darin enthaltene Slug erscheint in der Umschaltung der Beitragstypen des Administrators.
  • Benutzerdefinierte Rollen werden mit wpbe_permit_special_roles oder wpbe_author_area_roles hinzugefügt und haben die Berechtigung publish_posts.
  • Das Administratorkonto gibt in der Rollenprüfung [0] => administrator aus.
  • Die Spalten, die Redakteure ändern dürfen, sind mit für Website-Redakteure sichtbar (visible for the site editor) markiert.

Ist all das erfüllt und die Meldung erscheint trotzdem, eröffnen Sie ein Thema im WOLF-Support-Forum mit der Ausgabe der Rollenprüfung und dem Inhalt von Beitragstypen für Website-Redakteure (Site editors post types).