我想刪除一些基於用戶角色的菜單頁面,但是當我添加if condition
裏面的功能它什麼也沒做。remove_menu_page()沒有得到初始化,如果條件
function contributor_posts_action() {
if ($role == 'contributor_posts') { // contributor_posts - custom role
// echo 'here'; for testing purposes and WORKS, so it goes under the if condition
add_action('admin_menu', 'remove_menus_contrib');
function remove_menus_contrib(){
remove_menu_page('edit-comments.php');
remove_menu_page('tools.php');
remove_menu_page('edit.php?post_type=directory');
remove_menu_page('edit.php?post_type=city');
} // this function doesn't get hooked
add_action('admin_bar_menu', 'remove_admin_bar_items', 999);
function remove_admin_bar_items($wp_admin_bar) {
$wp_admin_bar->remove_node('new-directory');
$wp_admin_bar->remove_node('new-city');
}// this one works properly. It's for removing for admin bar.
}
}
add_action('admin_init', 'contributor_posts_action');
你永遠不會調用函數,所以他們不會被執行! – Rizier123 2014-10-28 13:05:31
@ Rizier123他們被稱爲add_action,其他人不會。另外,如果我在if條件之外添加remove-menus_contrib()函數以及它當前擁有的add_action,它就可以工作。 – user3467855 2014-10-28 13:08:09
這個'$ role'來自哪裏?從'admin_init'回調中取出這些函數,只留下'add_action's。 – brasofilo 2014-10-28 13:57:39