以下是我的插件当前的菜单/子菜单结构:
add_menu_page(\'Sunshine\', \'Sunshine\', \'sunshine_manage_options\', \'sunshine_admin\', \'sunshine_dashboard_display\', plugins_url( \'assets/images/sunshine-icon.png\' , $plugin_dir_path ));
add_submenu_page(\'sunshine_admin\', __(\'Dashboard\',\'sunshine\'), __(\'Dashboard\',\'sunshine\'), \'sunshine_manage_options\', \'sunshine_admin\', \'sunshine_dashboard_display\');
add_submenu_page(\'sunshine_admin\', __(\'Settings\',\'sunshine\'), __(\'Settings\',\'sunshine\'), \'sunshine_manage_options\', \'admin.php?page=sunshine\');
$sunshine_admin_submenu = array();
$sunshine_admin_submenu[10] = array(__(\'Galleries\',\'sunshine\'), __(\'Galleries\',\'sunshine\'), \'sunshine_manage_options\', \'edit.php?post_type=sunshine-gallery\');
$sunshine_admin_submenu[20] = array(__(\'Product Categories\',\'sunshine\'), __(\'Product Categories\',\'sunshine\'), \'sunshine_manage_options\', \'edit-tags.php?taxonomy=sunshine-product-category&post_type=sunshine-product\');
$sunshine_admin_submenu[30] = array(__(\'Products\',\'sunshine\'), __(\'Products\',\'sunshine\'), \'sunshine_manage_options\', \'edit.php?post_type=sunshine-product\');
$sunshine_admin_submenu[40] = array(__(\'Orders\',\'sunshine\'), __(\'Orders\',\'sunshine\'), \'sunshine_manage_options\', \'edit.php?post_type=sunshine-order\');
$sunshine_admin_submenu = apply_filters(\'sunshine_admin_menu\', $sunshine_admin_submenu);
ksort($sunshine_admin_submenu);
foreach ($sunshine_admin_submenu as $item) {
add_submenu_page(\'sunshine_admin\', $item[0], $item[1], $item[2], $item[3], $item[4]);
}
我在子菜单上应用了一个过滤器,因为我的插件有插件,可以添加额外的子菜单项。
我的问题出现在“设置”页面和“产品类别”分类法上
当您单击“设置”选项卡或“产品类别”分类法时,“我的阳光”主菜单不会打开以显示所有子菜单选项。如果我单击“Galleries”,它显示的很好,所有子菜单项都可见,“Galleries”以白色/粗体突出显示。
我进行了一些搜索,找到了一个支持主题,这使我实现了以下内容:
function sunshine_submenu_show_fix($parent_file) {
global $current_screen;
$taxonomy = $current_screen->taxonomy;
if ($taxonomy == \'sunshine-product-category\')
$parent_file = \'sunshine_admin\';
return $parent_file;
}
add_action(\'parent_file\', \'sunshine_submenu_show_fix\');
当点击“Product Categories”(产品类别)时,所有子菜单项现在都可见,但“Product Categories”(产品类别)本身不像“Galleries”(画廊)那样是粗体/白色的。
我在这里的目标是能够单击“设置”或“产品类别”,并使“阳光”子菜单项全部可见,相应页面以白色/粗体显示。