私はここで答えられた質問を見つけました メニューとサブメニューを取り除きます2私の問題に対する答えすべての編集者ロールのサブメニューが削除されるように、コードを少し変更しました。一人のユーザーだけではありませんか?そしてこのコードを改善する方法はありますか?私はWordPressの3.5.1
バージョンを使っています
私が使っているコード:
add_action('_admin_menu', 'remove_editor_submenu', 1);
function remove_editor_submenu() {
global $current_user;
get_currentuserinfo();
if($current_user->user_login == 'username') {
remove_action('admin_menu', '_add_themes_utility_last', 101);
}
}
add_action('admin_init', 'remove_theme_submenus');
function remove_theme_submenus() {
global $submenu, $current_user;
get_currentuserinfo();
if($current_user->user_login == 'username') {
unset($submenu['themes.php'][5]);
unset($submenu['themes.php'][7]);
unset($submenu['themes.php'][15]);
}
}
すべての$current_user->user_login == 'username'
をin_array('editor', $current_user->roles)
に置き換えます。また、グローバル変数$current_user
からユーザー情報が得られるため、get_currentuserinfo();
への呼び出しを削除することもできます。
これがコード交換です。
add_action('_admin_menu', 'remove_editor_submenu', 1);
function remove_editor_submenu() {
global $current_user;
if(in_array('editor', $current_user->roles)) {
remove_action('admin_menu', '_add_themes_utility_last', 101);
}
}
add_action('admin_init', 'remove_theme_submenus');
function remove_theme_submenus() {
global $submenu, $current_user;
if(in_array('editor', $current_user->roles)) {
unset($submenu['themes.php'][5]);
unset($submenu['themes.php'][7]);
unset($submenu['themes.php'][15]);
}
}
user_can
を使用してください。
if (user_can($current_user->ID,'editor')) { ...
2つの関数のうちどちらを使用したいのかわかりませんが、既存のif
条件式を置き換えたり追加したりするのは簡単なはずです。
あなたは "編集者の役割" - 複数 - と言いますが、私はあなたが "編集者の役割を持っているすべてのユーザー"を意味すると仮定しています。