Wie erlaube ich bestimmten Benutzern, eine bestimmte Art von Post zu erstellen?

Hier ist eine kurze Zusammenfassung der Einrichtung meiner Site:

Ich habe eine relativ einfache Intranetseite. Im Moment nutze ich Beiträge, um den Nutzern Neuigkeiten zu liefern. Ich benutze auch Seiten. Ich möchte nur, dass bestimmte Benutzer diese Dinge tun können (sagen wir “Redakteure”).

Was ich tun möchte, ist einen Community-Bereich der Website einzurichten, auf dem alle Benutzer einen Beitrag schreiben können (um Dinge zu verkaufen usw.). Ich frage mich, was der beste Weg ist, dies zu tun? Ich könnte eine Kategorie verwenden, um es einfach zu machen, nur solche Posts anzuzeigen. Aber ich möchte nicht, dass Benutzer in der Lage sind, irgendeine Art von Post zu machen. Ich möchte nur, dass sie in der Lage sind, in der Community zu posten. Wenn jemand Nachrichten veröffentlicht, möchte ich, dass sie ein höheres Sicherheitsniveau haben.

Wenn ich darüber nachdenke, würde ich gerne andere Ideen hören!

Bearbeiten :

Hier ist meine aktuelle benutzerdefinierte Postleitzahl:

function createCommunityPostType() { $args = array( 'public' => true, 'label' => 'Community' ); register_post_type('community', $args ); } add_action('init', 'createCommunityPostType'); 

Solutions Collecting From Web of "Wie erlaube ich bestimmten Benutzern, eine bestimmte Art von Post zu erstellen?"

Der folgende Abschnitt weist Ihrem CPT functionsanforderungen zu. Daher benötigen Benutzer die functionen edit_community, delete_community usw., um diese Aktionen auszuführen.

 function createCommunityPostType() { $args = array( 'public' => true, 'label' => 'Community' 'capability_type' => 'community', 'map_meta_cap' => true ); register_post_type('community', $args ); } add_action('init', 'createCommunityPostType'); 

Siehe die Teile über Fähigkeiten im Codex .

Sie müssen diese Caps auch Ihren Benutzern zuweisen. Sie können dafür ein Plugin verwenden (siehe das Mitglieder- Plugin), oder Sie können es selbst tun:

 function my_after_setup_theme() { $role = get_role( 'subscriber' ); $caps_set = get_option( 'my_caps_set' ); if ( !$caps_set ) { $role->add_cap( 'edit_community' ); $role->add_cap( 'read_community' ); $role->add_cap( 'delete_community' ); // ... and so forth (see codex for caps list) update_option( 'my_caps_set', true ); } } add_action( 'after_setup_theme', 'my_after_setup_theme' ); 

Wir legen ein Einstellungs-Flag fest, um zu speichern, dass die Caps mehr als einmal zurückgesetzt werden.

Im obigen Code wird davon ausgegangen, dass Sie diese Obergrenzen den Abonnenten zuweisen möchten. Sie können dies jedoch in eine beliebige Rolle ändern oder eine eigene Rolle erstellen.