Coding | Hooks und Filter | PHP | WordPress

WordPress: User soll keine Beiträge veröffentlichen, jedoch Dateien hochladen dürfen

steering 801807 1920

Aufgabe: Die Standardrolle neu anzumeldender Benutzer soll sie berechtigen Beiträge zu schreiben, Dateien hochzuladen und das Ergebnis zur Revision vorzulegen, nicht jedoch Beiträge selbst zu veröffentlichen.

Administratoren, Redakteuere und Autoren dürfen Beiträge veröffentlichen, Mitarbeiter (contributors) nicht. Das war die Usergruppe von der ich ausging. Da ein Mitarbeiter jedoch keine Dateien hochladen darf, muss ihm dafür noch die Berechtigung in der functions.php des Themes erteilt werden.

Ansatz

function add_theme_caps() { // get the "contributor" role $role = get_role( 'contributor' ); // let contributor build galleries $role->add_cap( 'upload_files' ); add_action( 'admin_init', 'add_theme_caps');

Da die Berechtigung in der Datenbank gespeichert wird, muss sie nur einmal vergeben werden. Daher ist es besser, den Vorgang nur einmal auszuführen, wenn eine Theme oder Plugin aktiviert wird.

Lösung

function add_theme_caps(){ global $pagenow; $role = get_role( 'contributor' ); if ( 'themes.php' == $pagenow && isset( $_GET['activated'] ) ){ $role->add_cap( 'upload_files' ); } else { $role->remove_cap( 'upload_files' ); } } add_action( 'load-themes.php', 'add_theme_caps' );

weiter schmökern

Schreibe einen Kommentar

Bitte Kommentarfunktion nicht für Supportanfragen nutzen. Dem kann hier nicht entsprochen werden.

Deine E-Mail-Adresse wird nicht veröffentlicht.