Chciałbym móc udzielić moim redaktorom uprawnień do zmiany menu, czy można to zrobić?
Karta wyglądu nie wydaje się być opcją, czy mogę to zrobić?
Chciałbym móc udzielić moim redaktorom uprawnień do zmiany menu, czy można to zrobić?
Karta wyglądu nie wydaje się być opcją, czy mogę to zrobić?
Odpowiedzi:
dodaj to do motywu functions.php
:
// add editor the privilege to edit theme
// get the the role object
$role_object = get_role( 'editor' );
// add $cap capability to this role object
$role_object->add_cap( 'edit_theme_options' );
WP_Role
admin_init
i tylkoif !$role_object->has_cap('edit_theme_options')
EDYCJA: aktualizacja WP 4.9 i ukrywanie tylko elementów menu dla Edytora
Jeśli chcesz, aby użytkownicy mogli zmieniać menu nawigacji, ale nie inne wyświetlane opcje: użyj tego
// Do this only once. Can go anywhere inside your functions.php file
$role_object = get_role( 'editor' );
$role_object->add_cap( 'edit_theme_options' );
Możesz odkomentować cały ten kod po odświeżeniu panelu administratora, ponieważ powyższy kod spowoduje trwałe zmiany w bazie danych.
Wszystkie edytowane opcje są teraz widoczne. Możesz ukryć inne opcje, takie jak:
function hide_menu() {
if (current_user_can('editor')) {
remove_submenu_page( 'themes.php', 'themes.php' ); // hide the theme selection submenu
remove_submenu_page( 'themes.php', 'widgets.php' ); // hide the widgets submenu
remove_submenu_page( 'themes.php', 'customize.php?return=%2Fwp-admin%2Ftools.php' ); // hide the customizer submenu
remove_submenu_page( 'themes.php', 'customize.php?return=%2Fwp-admin%2Ftools.php&autofocus%5Bcontrol%5D=background_image' ); // hide the background submenu
// these are theme-specific. Can have other names or simply not exist in your current theme.
remove_submenu_page( 'themes.php', 'yiw_panel' );
remove_submenu_page( 'themes.php', 'custom-header' );
remove_submenu_page( 'themes.php', 'custom-background' );
}
}
add_action('admin_head', 'hide_menu');
Ostatnie 3 wiersze hide_menu()
funkcji są specyficzne dla mojego motywu. Drugi parametr można znaleźć, klikając podmenu, które chcesz ukryć, w panelu administracyjnym. Twój adres URL będzie wtedy taki jak: example.com/wp-admin/themes.php?page= yiw_panel
Tak więc w tym przykładzie drugim parametrem remove_submenu_page()
funkcji będzieyiw_panel
Kiedy patrzę na strukturę menu administratora, wydaje się, że nav-menus.php
link jest związany z funkcjąedit_theme_options
. Czy możesz zmodyfikować rolę edytora, aby uwzględnić tę funkcję? Dałoby im to również możliwość edycji widżetów. Nie wiem, czy to jest problem? Wszystkie funkcje Ajax w menu są ograniczone przez tę funkcję, więc zmiana możliwości menu administratora do edycji menu prawdopodobnie nie będzie działać.
zainstaluj wtyczkę „User Role Editor” - włącz opcję edit_theme_options - zainstaluj wtyczkę Administruj - wyłącz „Widżety” i „Przełącz motyw” dla redaktorów;)
Przekonałem się, że twoje menu będzie działało w ten sposób: zainstaluj wtyczkę „ User Role Editor ” i tam możesz edytować warunki roli edytora i inne. Włącz opcję edit_theme_options. Ale teraz: zobaczysz opcję „menu” pod „tematami”, „widżetami”. Dla mnie: Po kliknięciu „menu” (jako edytor) nie widziałem wypełnionych opcji, ale były puste. Więc dezaktywowałem wtyczkę „User Role Editor”, a wypełnione opcje dla „menu” pojawiają się poprawnie. Pamiętaj, że dezaktywacja wtyczki „User Role Editor” pozostaje warunkiem aktywnej pracy edytora! Dobrze dla mnie, może ci też pomoże