wie man einem bestimmten Benutzer nur Zugriff auf benutzerdefinierte Beitragstypen gewährt

Lesezeit: 3 Minuten

In meinem Code habe ich einen benutzerdefinierten Post-Typ-Job. Ich habe eine Rolle namens Job-Manager erstellt. Jetzt möchte ich Berechtigungen zum Hinzufügen, Bearbeiten und Löschen eines Jobs für den Job-Manager erteilen. Nur er kann auf Job-Post-Typ zugreifen ….

Ich habe versucht, die Job-Manager-Rolle durch folgenden Code zu erstellen

          function add_job_manager_role(){
           add_role(
                'job_manager',
                 'Job Manager',
                   array(
                    'read'          => true,
                    'edit_posts'    => false,
                    'delete_posts'  => false,
                    'publish_posts' => false,
                    'upload_files'  => true
           )
        );
     }
   add_action( 'admin_init', 'add_job_manager_role', 4 ); 

So erteilen Sie dem Job-Manager Berechtigungen zum Hinzufügen, Löschen und Bearbeiten von benutzerdefinierten Post-Typ-Jobs

jede Hilfe sehr geschätzt. Vielen Dank im Voraus ….

  • Sie haben bereits eine Rolle hinzugefügt – Geben Sie ihm also die Möglichkeit, diesen Beitragstyp zu bearbeiten, und fügen Sie diese Fähigkeiten auch in die Registrierung des Beitragstyps ein.

    – Ständer

    16. September 2019 um 8:10 Uhr

  • im Grunde: folgen Sie dieser Anleitung: 3.7designs.co/blog/2014/08/…

    – Ständer

    16. September 2019 um 8:10 Uhr

  • Wenn Sie die Rolle einfach verwalten möchten, können Sie das Mitglieder-Plugin verwenden, das genau das ist, was Sie wollen. fr.wordpress.org/plugins/members

    – Alexis Vandepitte

    16. September 2019 um 8:47 Uhr

  • Ich habe bereits einen Posttyp-Job. Ich möchte nur diesem Posttyp Berechtigungen erteilen. Muss ich den Posttyp noch registrieren?

    – Bala

    16. September 2019 um 8:53 Uhr

  • Ich habe es nicht geschafft, den obigen Code zu verwenden. Ich möchte, dass der Job-Manager nur den Job-Post-Typ hinzufügen, bearbeiten und löschen kann

    – Bala

    16. September 2019 um 10:26 Uhr

Benutzer-Avatar
Hinweis Kronen

Wenn Sie die Rolle hinzufügen, müssen Sie auch die Funktionen wie folgt hinzufügen:

/**
add CPT capabilites to Role
*/
add_action('admin_init','o99_add_role_caps',999);

function o99_add_role_caps() {

    $role = get_role('my_role');      // ex. job_manager         
    $role->add_cap( 'read_my_CPT');
    $role->add_cap( 'edit_my_CPT' );
    $role->add_cap( 'edit_my_CPT' );
    $role->add_cap( 'edit_other_my_CPT' );
    $role->add_cap( 'edit_published_my_CPT' );
    $role->add_cap( 'publish_my_CPT' );
    $role->add_cap( 'read_private_my_CPT' );
    $role->add_cap( 'delete_my_CPT' );


}

my_CPT ist natürlich Ihr benutzerdefinierter Beitragstyp, als Sie beim Erstellen die Funktionsargumente angegeben oder geändert haben, als Sie so etwas getan haben:

function change_capabilities_of_CPT( $args, $post_type ){

 // Do not filter any other post type
 if ( 'my_CPT' !== $post_type ) { // my_CPT == Custom Post Type == 'job' or other

     // if other post_types return original arguments
     return $args;

 }


// This is the important part of the capabilities 
/// which you can also do on creation ( and not by filtering like in this example )


 // Change the capabilities of my_CPT post_type
 $args['capabilities'] = array(
            'edit_post' => 'edit_my_CPT',
            'edit_posts' => 'edit_my_CPT',
            'edit_others_posts' => 'edit_other_my_CPT',
            'publish_posts' => 'publish_my_CPT',
            'read_post' => 'read_my_CPT ',
            'read_private_posts' => 'read_private_my_CPT',
            'delete_post' => 'delete_my_CPT'
        );

  // Return the new arguments
  return $args;

}

Bearbeiten I

Für weitere Informationen:

Um den CPT steuern zu können, gibt es mehrere andere capabilities bei jeder Operation beteiligt.

Nur zum Beispiel um publish_my_CPT und um sie zu bearbeiten, benötigen Sie die edit_my_CPT && edit_other_my_CPT && read_my_CPT && read_private_my_CPT usw. bitte sieh dir … an Fähigkeiten im Codex und mit dem geposteten code kannst du das hinzufügen _my_CPT (z.B – _job oder was auch immer CPT ) zu diesen Fähigkeiten hinzufügt, sodass Sie das gewünschte Ergebnis erzielen können.

  • Ich habe es nicht geschafft, den obigen Code zu verwenden. Ich möchte, dass der Job-Manager nur den Job-Post-Typ hinzufügen, bearbeiten und löschen kann

    – Bala

    16. September 2019 um 10:25 Uhr

  • In dem geposteten Code haben Sie alle Berechtigungen, Sie können immer die gewünschten filtern. das musst du verstehen add zum Beispiel ist publish und read brauchst du sicher auch.

    – Obmerk Kronen

    17. September 2019 um 2:12 Uhr

  • Ich habe dasselbe Codemuster verwendet, um dies zu erledigen, kann dies jedoch nicht tun. wordpress.stackexchange.com/questions/402045/… kann jemand führen?

    – Manish Agarwal

    31. Januar um 14:33 Uhr

1246630cookie-checkwie man einem bestimmten Benutzer nur Zugriff auf benutzerdefinierte Beitragstypen gewährt

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy