虽然我无法证明为什么 read
不起作用 - 通常如果您想通过用户角色限制某些内容,您可以为角色添加 slug。如果您阅读源代码,add_menu_page()
它实际上将运行current_user_can
接受角色 slug 的功能。
我会替换read
为editor
,看看你会得到什么。它也适用于管理员,因为它在列表中传播并且administrators
都具有editor
,contributor
等“功能”。
编辑:您似乎安装了Instagram Feed插件,这将与您的自定义插件冲突。该插件的代码显示该sb-instagram-feed
页面属于该插件:
function sb_instagram_menu() {
add_menu_page(
__( 'Instagram Feed', 'instagram-feed' ),
__( 'Instagram Feed', 'instagram-feed' ),
'manage_options',
'sb-instagram-feed',
'sb_instagram_settings_page'
);
add_submenu_page(
'sb-instagram-feed',
__( 'Settings', 'instagram-feed' ),
__( 'Settings', 'instagram-feed' ),
'manage_options',
'sb-instagram-feed',
'sb_instagram_settings_page'
);
}
add_action('admin_menu', 'sb_instagram_menu');
而那个插件需要manage_options
,administrator
唯一的能力。您不需要链接到其他插件制作的页面,也不需要停用该插件。
编辑 2:请注意,直接编辑插件文件通常不是一个好习惯,因为您所做的任何更改都将在插件更新时被覆盖。您也许可以为其取消当前管理菜单的挂钩并挂钩您的自定义菜单。
// Remove Existing Menu
remove_action( 'admin_menu', 'sb_instagram_menu' );
// Add Custom Menu
add_action( 'admin_menu', 'custom_sb_instagram_menu');
function custom_sb_instagram_menu() {
add_menu_page(
'Instagram Test',
'Instagram Test',
'editor',
'sb-instagram-feed',
'sb_instagram_settings_page'
);
add_submenu_page(
'sb-instagram-feed',
'Test Settings',
'Test Settings',
'editor',
'sb-instagram-feed',
'sb_instagram_settings_page'
);
}