[wp-trac] [WordPress Trac] #16048: Make Admin Menu Generation Hookable
WordPress Trac
wp-trac at lists.automattic.com
Fri Dec 31 07:51:04 UTC 2010
#16048: Make Admin Menu Generation Hookable
----------------------------+-----------------------------
Reporter: mikeschinkel | Owner:
Type: enhancement | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Administration | Version: 3.1
Severity: normal | Keywords: menus
----------------------------+-----------------------------
This ticket proposes to make the code that generates the admin menus
''"hookable."'' It removes the hard-coded call to `_wp_menu_output()` and
replaces it with a priority `0` call to the `'adminmenu'` hook that
currently immediately precedes the existing call to `_wp_menu_output()`.
It also adds an `add_action()` call to assign `_wp_menu_output()` to be
called by the `'adminmenu'` hook at priority `0`.
With the exception of a plugin or theme using a negative or zero priority
for the `'adminmenu'` hook this hook will be 100% backward compatible.
'''Why?'''
Currently `_wp_menu_output()` in `/wp-admin/menu-header.php` is coded with
very few hooks making it hard at time to modify for client requirements.
The admin menu variables `$menu` and `$submenu` use numeric array indexes
for menu page and submenu page placement which makes it harder to ensure
that plugins and themes that modify admin menus are robust and compatible
with other plugins and themes that modify admin menus. It's been discussed
that thIs admin menu structure is suboptimal but for sake of backward
compatibility it's wisely been decided to maintain it as is.
This hook would allow a site developer to build his or her own admin menus
without modifying core. It would allow a theme vendor to do the same with
the caveat that replacing the admin menu means that other plugins or
themes might not work as expected. In general this might be a problem but
for those building custom solutions based on WordPress, especially when
they are building products based on WordPress ''(as I am'') this would be
extremely helpful. If it was felt necessary to ensure people don't do this
without understanding the compatibilities issues a requirement to first
set a constant like `'INCOMPATIBLE_ADMIN_MENUS'` could be required to make
it work.
Enabling this would also enable people ''(like me)'' to explore building
admin menus such that in the future better admin menus could evolve to the
point they are well thought out enough to actually replace the core admin
menus.
So hopefully since this is such a small patch, introduces no new hooks,
and is 99.999% backward compatible it should be a no-brainer?
--
Ticket URL: <http://core.trac.wordpress.org/ticket/16048>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software
More information about the wp-trac
mailing list