I have the same "problem" as WordPress, as in I need to allow batch changes of tags. The relationship is m to n; each element can have multiple tags. Now my main problem is that the elements might already have individual tags assigned, so selecting multiple elements for editing might result in having many "partially" matching tags.

The requirement would be that:

  1. tag(s) can be applied to a single element
  2. tag(s) can be removed from a single element
  3. not yet or partially assigned tag(s) can be added to selected elements
  4. assigned or partially assigned tag(s) can be removed from selected elements

What I struggle with is:

  1. How can we allow the user to keep control of the changes in progress (which tag is being remove, which is being added and this per element?)
  2. How to allow removing and assigning tags in one single go, as tags might be missing on some of the selected element, already be present on others?

Some input would be greatly appreciated! And I know that WordPress seems to not have solved this, so this must be a tough question. But I still have hope...

1 Answer 1


I don't know how wordpress handles it, but the concept is widely used in Mail applications like GMail. You could do something like this:

enter image description here

Display a overview with a list of all elements where you can add/remove tags and provide an option ("bulk add/remove tags") to remove and assign tags in one go. It depends on your use case how you want to handle conflicts:

  • What happens when a tag should be removed that is not present on an element?
  • What happens when a tag should be added that is already present on an element?

For simple uses cases you could just ignore conflicts. But maybe your users want to be informed or abort the action completely if there are conflicts.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.