Ermöglichen Sie Administratoren und Editoren nur den Zugriff auf wp-admin

Ich versuche den Zugriff auf wp-admin zu beschränken, so dass nur Administratoren und Editoren erlaubt sind. Im Moment verwende ich diese function:

function restrict_admin(){ //if not administrator, kill WordPress execution and provide a message if ( ! current_user_can( 'manage_options' ) ) { wp_die( __('You are not allowed to access this part of the site') ); } } add_action( 'admin_init', 'restrict_admin', 1 ); 

Aber das macht den Job nur für den Administrator; Redakteure dürfen nicht auf diesen Teil der Site zugreifen. Was kann ich tun?

Solutions Collecting From Web of "Ermöglichen Sie Administratoren und Editoren nur den Zugriff auf wp-admin"

Sie haben Recht damit, dass Sie nach einer Fähigkeit suchen sollten. Die Verwaltungsoptionen werden jedoch nur Administratoren standardmäßig zugewiesen. Sie sollten prüfen, ob eine function sowohl für Redakteure als auch für Administratoren wie delete_others_posts verfügbar ist.

 function restrict_admin(){ //if not administrator, kill WordPress execution and provide a message if ( ! current_user_can( 'delete_others_posts' ) ) { wp_die( __('You are not allowed to access this part of the site') ); } } add_action( 'admin_init', 'restrict_admin', 1 ); 

Siehe Rollen und Fähigkeiten aus dem Codex.

Sie können dies auch verwenden:

 < ?php if( current_user_can('editor') || current_user_can('administrator') ) { ?> // stuff here for admins or editors < ?php } ?> 

Für eine detaillierte Referenz überprüfen Sie diesen anderen Thread auf Stapel.

Vielen Dank

Für mich, da pro Codex Passing Rollennamen zu current_user_can () abgeraten wird, da dies nicht garantiert, um richtig zu funktionieren (siehe # 22624 ), ist die beste Option in etwa so.

 $user = wp_get_current_user(); $allowed_roles = array('administrator','editor'); if(array_intersect($allowed_roles, $user->roles)){ //user have $allowed_roles }