Skip to content

Commit

Permalink
Nav Menu: Remove post/page items from the Nav Menu when the post/page…
Browse files Browse the repository at this point in the history
… is deleted.

This was broken through a change in [25163]. `_menu_item_object` in wp_get_associated_nav_menu_items() is not relevant for post types.
Adds unit tests.

props UmeshSingla for initial patch.
fixes #26795.
Built from https://develop.svn.wordpress.org/trunk@27150


git-svn-id: http://core.svn.wordpress.org/trunk@27017 1a063a9b-81f0-0310-95a4-ce76da25c4cd
  • Loading branch information
ocean90 committed Feb 9, 2014
1 parent db605f4 commit 31d1f90
Showing 1 changed file with 13 additions and 5 deletions.
18 changes: 13 additions & 5 deletions wp-includes/nav-menu.php
Original file line number Diff line number Diff line change
Expand Up @@ -702,11 +702,19 @@ function wp_get_associated_nav_menu_items( $object_id = 0, $object_type = 'post_
);
foreach( (array) $menu_items as $menu_item ) {
if ( isset( $menu_item->ID ) && is_nav_menu_item( $menu_item->ID ) ) {
if ( get_post_meta( $menu_item->ID, '_menu_item_type', true ) !== $object_type ||
get_post_meta( $menu_item->ID, '_menu_item_object', true ) !== $taxonomy )
continue;

$menu_item_ids[] = (int) $menu_item->ID;
$menu_item_type = get_post_meta( $menu_item->ID, '_menu_item_type', true );
if (
'post_type' == $object_type &&
'post_type' == $menu_item_type
) {
$menu_item_ids[] = (int) $menu_item->ID;
} else if (
'taxonomy' == $object_type &&
'taxonomy' == $menu_item_type &&
get_post_meta( $menu_item->ID, '_menu_item_object', true ) == $taxonomy
) {
$menu_item_ids[] = (int) $menu_item->ID;
}
}
}

Expand Down

0 comments on commit 31d1f90

Please sign in to comment.