Opened 8 months ago
Closed 3 months ago
#21898 closed enhancement (duplicate)
Custom Fields for Menu Items
| Reported by: |
|
Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Menus | Version: | |
| Severity: | normal | Keywords: | has-patch |
| Cc: | pippin@…, mindctrl, justin@…, frederic.demarle@… |
Description
I think plugin authors should be able to able to add custom fields to menu items. I'd like to set certain menu items as viewable only by certain roles. Currently this is possible, but only by duplicating the entire Walker_Nav_Menu_Edit walker. It'd be much easier if there was a hook inside the Walker instead.
For instance, in /wp-admin/includes/nav-menu.php
directly following:
<p class="field-description description description-wide">
<label for="edit-menu-item-description-<?php echo $item_id; ?>">
<?php _e( 'Description' ); ?><br />
<textarea id="edit-menu-item-description-<?php echo $item_id; ?>" class="widefat edit-menu-item-description" rows="3" cols="20" name="menu-item-description[<?php echo $item_id; ?>]"><?php echo esc_html( $item->description ); // textarea_escaped ?></textarea>
<span class="description"><?php _e('The description will be displayed in the menu if the current theme supports it.'); ?></span>
</label>
</p>
You could easily place:
<?php do_action( 'wp_nav_menu_custom_fields', $item, $depth, $args ); ?>
Since there are already hooks for wp_update_nav_menu_item and wp_setup_nav_menu_item it is already possible to save the save and to call it back when using it in the front-end Walker.
Attachments (1)
Change History (8)
comment:1
SergeyBiryukov — 8 months ago
- Component changed from General to Menus
- Version trunk deleted
comment:4
greenshady — 8 months ago
- Cc justin@… added
- Cc frederic.demarle@… added
+1 for this hook. As mentionned above, we can derive a class from Walker_Nav_Menu_Edit and copy paste the whole start_el function. But that's a lot of duplicate code. As always in these cases, it is hard to maintain if the core code evolves. And what happens if two plugins do the same?
comment:7
SergeyBiryukov — 3 months ago
- Milestone Awaiting Review deleted
- Resolution set to duplicate
- Status changed from new to closed
Duplicate of #18584.

Adds hook.