Я пытаюсь удалить некоторые страницы меню на основе роли пользователя, но когда я добавляю функцию внутри if condition
, она ничего не делает.remove_menu_page() не получает инициализацию внутри условия if
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
@ Rizier123 Они вызываются с помощью add_action, другой работает другим. Также, если я добавлю функцию remove-menus_contrib() вне условия 'if 'вместе с add_action, который она имеет в настоящее время, она работает. – user3467855
Где находится эта '$ role'? Выполните эти функции из обратного вызова 'admin_init', оставив только' add_action'. – brasofilo