Deleting a term shared across taxonomies deletes all associated nav menus. — at Version 2
|Reported by:||michelwppi||Owned by:|
|Severity:||major||Keywords:||has-patch 3.2-early commit|
Description (last modified by scribu)
Using other taxonomies since WP 2.3 in plugin xili-dictionary , I just discover that now (since WP. 3.0) when deleting a term of his taxonomy, a menu item can disappear.
In which conditions ?
When the term (i.e. news) is shared by taxonomy category and the plugin taxonomy named dictionary ?
After deep tests (thanks to the night when time changes from summer to winter time), I can also reproduce it in current conditions : when a term is shared between taxonomies category and post_tag : If you delete the tag (i.e my test), if a category 'my test' exists and was active inside a navigation menu : the nav menu item disappear (unpleasant).
The cause of this unexpected erasing, was the action hook delete_term at end of wp_delete_term function and precisely the default filter _wp_delete_tax_menu_item.
The add_action in default-filter.php (line 233) don't pass the 3 parameters and the function (menu-nav.php line 700) don't verify if it is possible to delete the menu item (as well done for term in other taxonomies in wp_delete_term itself) by testing the params and the taxonomy of the menu item content.
Today workaround in plugins using new taxonomies : remove filter before deleting a term on concerned taxonomies and add it after.
Hope that explanations were explicit.
Change History (2)
- Cc admin@… added
- Keywords needs-patch added; post_tag delete_term _wp_delete_tax_menu_item removed
- Summary changed from if a term is shared: delete this term delete ever nav menu item ! to Deleting a term shared across taxonomies deletes all associated nav menus.