it-swarm.com.de

Geben Sie dem Editor Zugriff auf die Seitenleiste

Ich möchte der Editor-Rolle den Zugriff auf die Bearbeitung der Seitenleiste und ihres Inhalts gewähren. Ich habe dort ein Text-Widget und um dieses Text-Widget zu bearbeiten, muss der Benutzer ein Administrator sein - das ist zum Kotzen. Wie erteile ich der Editorrolle die Berechtigung zum Bearbeiten der Seitenleiste?

14
Howdy_McGee

Die Funktion edit_theme_options sollte es dem Benutzer ermöglichen, die Seitenleiste wie auf dieser Seite beschrieben zu bearbeiten: http://codex.wordpress.org/Appearance_Widgets_SubPanel

Code zum Hinzufügen zu functions.php

   $role = get_role('editor'); 
   $role->add_cap('edit_theme_options');

Bearbeiten:

Dies sollte funktionieren, um zu verhindern, dass der Editor auf Themen oder Menüs zugreift

function custom_admin_menu() {

    $user = new WP_User(get_current_user_id());     
    if (!empty( $user->roles) && is_array($user->roles)) {
        foreach ($user->roles as $role)
            $role = $role;
    }

    if($role == "editor") { 
       remove_submenu_page( 'themes.php', 'themes.php' );
       remove_submenu_page( 'themes.php', 'nav-menus.php' ); 
    }       
}

add_action('admin_menu', 'custom_admin_menu');

Ich hatte keine Gelegenheit, dies zu testen, aber es entfernt sie nur aus dem Menü. Sie können möglicherweise trotzdem auf sie zugreifen, indem Sie die URL direkt eingeben.

22
Elliott

Wenn Sie dies nur so einfach wie möglich konfigurieren möchten, verwenden Sie das Mitglieder-Plugin. Die Fähigkeit, die Sie hinzufügen müssen, ist 'edit_theme_options'. Beachten Sie, dass dies nicht nur den Widgets-Bereich, sondern auch den Editor-Zugriff auf das gesamte Erscheinungsbild-Menü ermöglicht. Siehe hier

http://wordpress.org/extend/plugins/members/

Wenn Sie dies programmgesteuert ausführen möchten, müssen Sie add_cap () verwenden.

$editor = get_role('editor');
$editor->add_cap('edit_theme_options');

Sie können diesen Code in ein eigenes Plugin werfen und fertig. Oder setzen Sie es in functions.php .

2
eddiemoya