Administrator menus
Plugins and themes usually need somewhere in the admin panel for their own screens. The menu helpers add sections and entries to the administration menu.
Adding a top-level section
Section titled “Adding a top-level section”osc_add_admin_menu_page( $menu_title, $url, $menu_id, $capability = 'administrator', $icon_url = null, $position = null);Adding an entry under it
Section titled “Adding an entry under it”osc_add_admin_submenu_page( $menu_id, $submenu_title, $url, $submenu_id, $capability = 'administrator');Removing entries
Section titled “Removing entries”osc_remove_admin_menu_page($menu_id);osc_remove_admin_submenu_page($menu_id, $submenu_id);osc_remove_admin_menu(); // clears the lotRemoving core entries is a blunt instrument — another plugin may be linking to what you just deleted. Prefer capabilities.
Adding to an existing core section
Section titled “Adding to an existing core section”Most plugins belong under a section that already exists rather than in one of their own. There is a helper per core section:
osc_admin_menu_items($submenu_title, $url, $submenu_id, $capability = null, $icon_url = null);osc_admin_menu_categories(…);osc_admin_menu_pages(…);osc_admin_menu_appearance(…);osc_admin_menu_plugins(…);osc_admin_menu_settings(…);osc_admin_menu_tools(…);osc_admin_menu_users(…);osc_admin_menu_stats(…);They cover Listings, Categories, Pages, Appearance, Plugins, Settings, Tools, Users and Statistics.
Example
Section titled “Example”function myplugin_admin_menu(){ osc_add_admin_menu_page( __('My plugin', 'myplugin'), osc_admin_render_plugin_url('myplugin/admin/settings.php'), 'myplugin', 'administrator' );
osc_add_admin_submenu_page( 'myplugin', __('Settings', 'myplugin'), osc_admin_render_plugin_url('myplugin/admin/settings.php'), 'myplugin_settings', 'administrator' );}
osc_add_hook('admin_menu_init', 'myplugin_admin_menu');Use a unique $menu_id — prefix it with your plugin folder. Two plugins
claiming the same id will overwrite each other’s menus.