我想隐藏管理菜单和限制访问该页面的Wordpress。对于隐藏管理菜单,我已经完成了。下面是示例代码:
add_action( 'admin_init', 'my_remove_menu_pages' );
function my_remove_menu_pages() {
// If the user does not have access to publish posts
if(!current_user_can('manage_options')) {
remove_menu_page('tools.php');
}
}
创建新的用户角色,例如image_uploader。我怎样才能限制访问与我基于用户角色隐藏的管理菜单相关的页面?目前,它只是隐藏管理菜单,而不是限制,这意味着,谁保持链接的用户将获得访问该页面。这段代码不是针对用户角色的,而是针对用户能力的。
我想要的是隐藏和限制菜单和页面基于特定的用户角色。我该怎么办?
您可以使用钩子 load-$page
,如:
# /wp-admin/$page.php
$pages = array( 'profile', 'tools' );
foreach( $pages as $page )
add_action( "load-$page.php", 'block_user_so_23568456' );
function block_user_so_23568456()
{
$user = get_userdata( get_current_user_id() );
# Send this user role to the Dashboard /wp-admin/index.php
if ( in_array( 'image_uploader', $user->roles ) )
{
wp_redirect( admin_url() );
exit();
}
}