разрешить редакторам редактировать меню?

Я хочу, чтобы мои редакторы могли изменять меню, можно ли это сделать?

Вкладка «Внешний вид» вообще не является параметром, могу ли я сделать это?

41 голос | спросил Mild Fuzz 17 32010vEurope/Moscow11bEurope/MoscowWed, 17 Nov 2010 15:42:00 +0300 2010, 15:42:00

6 ответов


44

добавьте это в 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' );
ответил 24 FebruaryEurope/MoscowbThu, 24 Feb 2011 16:11:45 +0300000000pmThu, 24 Feb 2011 16:11:45 +030011 2011, 16:11:45
15

EDIT: обновление для WP 4.9 & только скрытие пунктов меню для редактора

Если вы хотите, чтобы ваши пользователи могли изменять меню навигации, но не другие параметры под внешним видом: используйте этот

// Do this only once. Can go anywhere inside your functions.php file
$role_object = get_role( 'editor' );
$role_object->add_cap( 'edit_theme_options' );

Вы можете прокомментировать весь этот код после обновления панели администратора, потому что вышеуказанный код внесет постоянные изменения в базу данных.

Теперь у вас есть все возможности под видом, видимые редакторам. Вы можете скрыть другие параметры следующим образом:

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');

Последние 3 строки в функции hide_menu() являются темами для моей темы. Второй параметр можно найти, нажав на подменю, которое вы хотите скрыть, на панели администратора. Ваш URL-адрес будет выглядеть примерно так: example.com/wp-admin/themes.php?page=yiw_panel

Итак, в этом примере вторым параметром для функции remove_submenu_page() будет yiw_panel

ответил Jules 16 PMpTue, 16 Apr 2013 18:51:02 +040051Tuesday 2013, 18:51:02
10

В WordPress 3.8 это будет лучший код, чем текущий принятый ответ.

/**
 * @var $roleObject WP_Role
 */
$roleObject = get_role( 'editor' );
if (!$roleObject->has_cap( 'edit_theme_options' ) ) {
    $roleObject->add_cap( 'edit_theme_options' );
}
ответил BenFreke 9 Jam1000000amThu, 09 Jan 2014 11:39:30 +040014 2014, 11:39:30
3

Когда я смотрю на структуру меню администратора, кажется ссылка nav-menus.php привязана к функции edit_theme_options . Можете ли вы изменить роль редактора, чтобы включить эту возможность? Это также будет дать им возможность редактировать виджеты , я не знаю, является ли это проблемой? Все элементы меню Ajax ограничены этой возможностью, поэтому просто изменение возможности меню администратора для редактирования меню, вероятно, не будет работать.

ответил Jan Fabry 17 32010vEurope/Moscow11bEurope/MoscowWed, 17 Nov 2010 16:26:34 +0300 2010, 16:26:34
3

instal plugin «Редактор роли пользователя» - Switch edit_theme_options ON - установить плагин Adminimize - отключить «Виджеты» и «Переключить тему» ​​для редакторов;)

ответил 14 AMpThu, 14 Apr 2011 11:51:21 +040051Thursday 2011, 11:51:21
0

Я нашел, что ваше меню будет работать так: instal plugin " Редактор роли пользователя ", и там вы можете редактировать условия для роли редактора и других. Включите переключатель edit_theme_options. Но теперь: вы увидите «меню» -описание в разделе «темы», «виджеты». Для меня: после нажатия на «меню» (как редактор) я не видел заполненные параметры, но пустые. Поэтому я отключил плагин «Редактор роли пользователя» и правильно заполнил параметры для «меню». Обратите внимание, что деактивация плагина «Редактор роли пользователя» остается для активного редактора активным! Хорошо для меня, может быть, это тоже поможет.

ответил 5 Jpm1000000pmWed, 05 Jan 2011 15:54:33 +030011 2011, 15:54:33

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132