回答:
これをあなたのテーマに追加してください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
とのみif !$role_object->has_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
管理メニューの構造を見ると、nav-menus.php
リンクが機能に関連付けられているようedit_theme_options
です。この機能を含めるようにエディターの役割を変更できますか?これにより、ウィジェットを編集するオプションも提供されますが、これが問題なのかわかりませんか?すべてのメニューAjaxのものはこの機能によって制限されているため、メニューを編集するために管理メニュー機能を変更するだけではおそらく機能しません。
instalプラグイン「ユーザーロールエディター」-edit_theme_optionsをオンにする-プラグインをインストールするAdminimize-エディターの「ウィジェット」と「テーマを切り替える」をオフにする;)
メニューがこのように機能することがわかりました。プラグイン「User Role Editor」をインストールすると、エディターロールなどの条件を編集できます。edit_theme_optionsをオンに切り替えます。しかし今:「テーマ」、「ウィジェット」の下に「メニュー」オプションが表示されます。私の場合:「メニュー」(エディタとして)をクリックした後、塗りつぶされたオプションは表示されませんが、空です。そのため、プラグイン「ユーザーロールエディター」を無効にし、「メニュー」の入力オプションが正しく表示されるようにしました。プラグイン「ユーザーロールエディター」を無効にすると、エディターがアクティブになる条件が維持されることに注意してください。私にとっては良いことかもしれません