編集者にメニューを変更する権限を与えたいのですが、これは可能ですか?
外観タブはまったく選択肢に見えないのですが、そうすることはできますか?
これをあなたのテーマの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 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');
hide_menu()
関数の最後の3行は私のテーマに特有のものです。 2番目のパラメータは、管理者パネルで非表示にしたいサブメニューをクリックすることで見つけることができます。 URLはexample.com/wp-admin/themes.php?page= yiw_panel のようになります。
したがって、この例では、remove_submenu_page()
関数の2番目のパラメーターはyiw_panel
になります。
WordPress 3.8では、これは現在認められている答えよりも優れたコードです。
/**
* @var $roleObject WP_Role
*/
$roleObject = get_role( 'editor' );
if (!$roleObject->has_cap( 'edit_theme_options' ) ) {
$roleObject->add_cap( 'edit_theme_options' );
}
インストールプラグイン "User Role Editor" - edit_theme_optionsをオンにします - インストールプラグインを管理します - "ウィジェット"と "テーマの切り替え"をオフにします;)
管理メニューの構造を見ると、 nav-menus.php
リンクはケーパビリティedit_theme_options
に関連付けられています。この機能を含めるために編集者の役割を変更できますか?これはまた それらにウィジェットを編集するオプションを与えるでしょう 、私はこれが問題であるかどうかわかりませんか? Ajax関連のすべての機能はこの機能によって制限されているので、メニューを編集するために管理メニュー機能を変更するだけではおそらくうまくいかないでしょう。
私はあなたのメニューがこのように動作することを発見しました:インストールプラグイン " User Role Editor "そしてそこであなたはエディタロールとその他の条件を編集することができます。 edit_theme_optionsをONにします。しかし今:あなたは "テーマ"、 "ウィジェット"の下に "メニュー"オプションが表示されます。私のために:(メニューとして) "menu"をクリックした後、私はいっぱいになったオプションを見ることはないが空だ。だから私はプラグイン "User Role Editor"を無効にして "menu"のための記入されたオプションが正しく表示されるようにします。プラグイン「User Role Editor」を無効にしても、エディタがアクティブになる条件は変わりません。私にとっては良い、多分それもあなたを助けるでしょう