WordPress.org

Make WordPress Core

Opened 5 years ago

Last modified 21 months ago

#15264 closed defect (bug)

Deleting a term shared across taxonomies deletes all associated nav menus. — at Version 2

Reported by: michelwppi Owned by:
Milestone: 3.7 Priority: normal
Severity: major Version: 3.0.1
Component: Taxonomy Keywords: has-patch 3.2-early commit
Focuses: Cc:

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.

Best regards

Change History (2)

comment:1 @Utkarsh5 years ago

  • 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.

comment:2 @scribu5 years ago

  • Description modified (diff)
Note: See TracTickets for help on using tickets.