it-swarm.com.de

Erstellen Sie eine Benutzerrolle, die auf ein bestimmtes CPT beschränkt ist

Ich versuche, eine Rolle zu erstellen, die nur bei einem CPT erstellt und eingereicht werden kann. Wenn ich edit_post von der Rolle entferne, wird die Möglichkeit zum Erstellen und Bearbeiten der zugewiesenen und registrierten CPTs ebenfalls widerrufen. Ich habe die Funktion edit_CPTs ebenfalls für die Rolle registriert und zugewiesen. Im Grunde habe ich Folgendes:

edit_cpt
edit_cpts

und ich habe weggenommen

edit_posts

Sobald ich edit_posts entferne, kann die Rolle jedoch nicht einmal die CPTs in der Dashboard-Oberfläche sehen. Jede Hilfe wäre sehr dankbar.

2
Ollie

Sie müssen das CPT mit Ihrer benutzerdefinierten Funktion registrieren und dem Benutzer dann diese spezifische Obergrenze zuweisen.

Wenn Sie die Argumente an register_post_type übergeben, setzen Sie capability_type auf Ihre neue Funktion, sodass die Prüfung in 'edit_cpts' statt in 'edit_post' umgewandelt wird.

Wenn Sie 'capability_type' => [ 'cpt', 'cpts' ] einstellen, wird 'cpt' für Standardfähigkeitsprüfungen 'post' zugeordnet. Wenn Sie also normalerweise auf 'edit_post' prüfen, suchen Sie jetzt nach 'edit_cpt'.

Wenn Sie die Begrenzung für den primitiven 'edit_posts' vollständig von den Benutzern/Rollen entfernen, müssen Sie die neue mit WP_Role::add_cap() hinzufügen und mit current_user_can( 'edit_cpts' ) überprüfen.

3
Morgan Estes