Entfernen von functionen aus der geklonten Administratorrolle

Ich versuche eine neue Rolle in meinem WordPress Theme zu erstellen, die fast alle die gleichen Rechte wie ein Admin hat. Grundsätzlich ist es eine Kreuzung zwischen Redakteur und Administrator. Eines der Probleme, die ich habe, besteht darin, dem Editor zu erlauben, das Untermenü zum Hinzufügen eines benutzerdefinierten Bildkopfs in Erscheinungsbildern zu “sehen”. Ich möchte entweder zulassen, dass der Editor dieses Untermenü sieht oder eine neue Rolle erstellt, die ihnen fast alle die gleichen Fähigkeiten wie ein Administrator ermöglicht. Ich habe den folgenden Link zum Klonen einer Rolle gesehen, aber wie gehe ich vor, um Fähigkeiten wegzunehmen und herauszufinden, welche Fähigkeiten dies wären?

https://wordpress.stackexchange.com/a/31472/7662

TIA!

Solutions Collecting From Web of "Entfernen von functionen aus der geklonten Administratorrolle"

Eine Liste der functionen nach Benutzerebene finden Sie auf der Seite Rollen und functionscodes .

Die Fähigkeit, die es einem Benutzer erlauben würde, einen Themen-Header zu edit_theme_options , wäre wahrscheinlich edit_theme_options , aber ich wette, es würde Ihren Redakteuren mehr Möglichkeiten geben, als nur mit dem Header herumzuspielen. Es ist schwer zu sagen, ohne zu wissen, welches Thema Sie verwenden.

Das Problem beim Erstellen einer benutzerdefinierten function besteht dagegen darin, dass es Ihnen nichts nützt, wenn Sie Zugriff auf die function haben, die den Menüeintrag erstellt, auf den Sie zugreifen möchten (und ich nicht Denken Sie daran, benutzerdefinierte Header, sind eine function, die Sie einfach über Theme-functionen optimieren können, es sei denn, es ist eine völlig benutzerdefinierte functionalität – dh nicht die, die Sie in den Standard-WordPress-Themen wie Twenty Eleven finden.

Also würde ich sagen: klonen Sie die Rolle und passen Sie die Fähigkeiten an.

Um functionen von einer Rolle zu entfernen, verwenden Sie so etwas in Ihrer functions.php :

 add_action('init', 'remove_unnecessary_capabilities', 10); function remove_unnecessary_capabilities() { $caps_to_remove = array( 'export', 'import', 'create_users', 'switch_themes' // etc ); $custom_role = get_role('admin_editor'); // Edit according to your role as it was declared when added foreach($caps_to_remove as $cap) { $custom_role->remove_cap($cap); } } 

Der obige Code wird jedes Mal ausgeführt, wenn eine Seite gerendert wird, obwohl die functionen in der database aufgezeichnet sind. Dies hat keine Konsequenzen, außer unnötigen Overhead hinzuzufügen, aber wenn es Sie stört, überprüfen Sie die folgenden Antworten: Dies , wenn Sie ein Thema programmieren; oder das, wenn Sie ein Plugin kodieren.