/** * add custom submenu link under __CLASS__ menu * @param $menu */ public static function valid_custom_submenu($menu) { if (count($menu) < 3) { return; } $menu = apply_filters('hw_valid_custom_submenu', $menu); //special wp core file $wp_core_files = array('options-general.php', 'admin.php', 'tools.php', 'import.php', 'export.php', 'users.php', 'user-new.php', 'profile.php', 'plugins.php', 'plugin-install.php', 'plugin-editor.php', 'theme-editor.php', 'customize.php', 'nav-menus.php', 'widgets.php', 'themes.php', 'edit-comments.php', 'media-new.php', 'upload.php', 'edit-tags.php', 'edit.php', 'post-new.php', 'update-core.php'); if ($menu[0] == 'edit_theme_options') { switch ($menu[1]) { case 'custom-header': $menu[2] = admin_url('customize.php?return=&autofocus[control]=header_image'); return $menu; case 'custom-background': $menu[2] = admin_url('customize.php?return=&autofocus[control]=background_image'); return $menu; } } //check wp core file if (in_array(trim($menu[2]), $wp_core_files)) { $menu[2] = admin_url($menu[2]); return $menu; } foreach ($wp_core_files as $file) { if (preg_match("%^{$file}%", $menu[2])) { $menu[2] = admin_url($menu[2]); return $menu; } } $url = explode('?', $menu[2]); if (!HW_Validation::hw_valid_url($menu[2]) && preg_match('#\\.php$#', trim(reset($url)))) { $menu[2] = admin_url('admin.php?page=' . $menu[2]); } elseif (!HW_Validation::hw_valid_url($menu[2])) { $menu[2] = admin_url('options-general.php?page=' . $menu[2]); } return $menu; }
/** * fix submenus for module box icon * @param $parent_box_id */ protected function migrate_submenus_module_box($parent_box_id = '') { static $parent; if (empty($parent)) { $parent =& $this->get_main_menu_box(); } //main module menu box if ($parent_box_id == '') { $parent_box_id = $parent['id']; } //add submenu box for module icon $list_menus = $this->get_other_module_submenus(); #_print($list_menus); if (!empty($list_menus)) { //fix parent menu if (isset($list_menus['parent'][6])) { //find plugin icon if (empty($parent['icon_url']) && HW_Validation::hw_valid_url($list_menus['parent'][6])) { $parent['icon_url'] = $list_menus['parent'][6]; } elseif (empty($parent['classes'])) { $parent['classes'] = array($list_menus['parent'][6], 'hw-dashicons', 'dashicons'); $parent['icon_url'] = ''; //remove icon image } } //add submenus foreach ($list_menus['sub'] as $id => $item) { if ($id == 0 && (!trim($parent['link']) || trim($parent['link']) == '#')) { //valid menu link $parent['link'] = $item[2]; } $this->add_submenu_box($parent_box_id, $item[2], $item[0]); //id, url, title } } }