Erstellen Sie eine Benutzerrolle, die auf bestimmte CPTs beschränkt ist

Ich versuche, eine Rolle zu erstellen, die nur für einen CPT erstellt und übermittelt werden kann. Wenn ich edit_post von der Rolle wegnehme, widerruft es die Fähigkeit, auch die zugewiesenen und registrierten CPTs zu erstellen und zu bearbeiten. Ich habe registriert und die Rolle edit_CPTs auch der Rolle zugewiesen. Also im Grunde habe ich das:

edit_cpt edit_cpts 

und ich habe es weggenommen

 edit_posts 

Aber sobald ich edit_posts die Rolle nicht einmal die CPTs in der Dashboard-Oberfläche sehen. Jede Hilfe würde sehr geschätzt werden.

Solutions Collecting From Web of "Erstellen Sie eine Benutzerrolle, die auf bestimmte CPTs beschränkt ist"

Sie müssen den CPT mit Ihrer benutzerdefinierten function registrieren und dann dem Benutzer diese bestimmte Obergrenze zuweisen.

Wenn Sie die Argumente an register_post_type , setzen Sie capability_type auf Ihre neue Fähigkeit, sodass der Check zu 'edit_cpts' anstelle von 'edit_post' .

Wenn Sie 'capability_type' => [ 'cpt', 'cpts' ] , wird ‘cpt’ für Standard-functionsüberprüfungen auf ‘post’ umgestellt. Wenn Sie also nach ‘edit_post’ suchen, suchen Sie nach ‘edit_cpt’ “.

Wenn Sie die 'edit_posts' von Benutzern / Rollen vollständig entfernen, müssen Sie Ihre neue mit WP_Role::add_cap() hinzufügen und mit WP_Role::add_cap() current_user_can( 'edit_cpts' ) .