Nav Menu: Remove post/page items from the Nav Menu when the post/page 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
This commit is contained in:
parent
db605f4767
commit
31d1f909a4
|
@ -702,11 +702,19 @@ function wp_get_associated_nav_menu_items( $object_id = 0, $object_type = 'post_
|
||||||
);
|
);
|
||||||
foreach( (array) $menu_items as $menu_item ) {
|
foreach( (array) $menu_items as $menu_item ) {
|
||||||
if ( isset( $menu_item->ID ) && is_nav_menu_item( $menu_item->ID ) ) {
|
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 ||
|
$menu_item_type = get_post_meta( $menu_item->ID, '_menu_item_type', true );
|
||||||
get_post_meta( $menu_item->ID, '_menu_item_object', true ) !== $taxonomy )
|
if (
|
||||||
continue;
|
'post_type' == $object_type &&
|
||||||
|
'post_type' == $menu_item_type
|
||||||
$menu_item_ids[] = (int) $menu_item->ID;
|
) {
|
||||||
|
$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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue