The Book and the Taxonomy modules are very similar for organising content in a hierarchy structure.

Both modules:

  • Allow Multi level hierarchies
  • Can be accessed by Views
  • All custom theming via node.tpl.php files
  • Offer the means for promoting or demoting content within a hierarchy, or moving it to another hierarchy

The Book module has the added advantage of creating navigation system (Although you could probably recreate this with taxonomy and Views).

My question is this: Which is the better to use for organising content in a hierarchical structure? Does one have any disadvantages or advantages over the other?

It seems odd to me that two similar modules exist in core. Why aren't they just combined into one?

1 Answer 1


The difference is that the Book module defines a content type ("Book page") that can be used to create books. The Book module allows also to create a hierarchical structure, and it shows:

  • the list of the child pages associated with the current book you are visualizing
  • a menu that allows to pass from a page to the next one, the previous one, and the top one
  • a link that allows you to create a new child page
  • a link that allows you to see a printable version of the current book page

    screenshot from drupal.org

The Taxonomy module is used to categorize the content of a site, but when you click on the link of a taxonomy term used by a node, the page you see shows all the nodes using that taxonomy term, without allowing you to pass from a node to the successive, or the one hierarchically on the top.

Said in sort, the Taxonomy module handles an attribute (in Drupal terminology is a field, handled with the field API) that can be associated with nodes, but also to users, while the Book module defines a content type that can be used to create books, and allows to handle that content type in a hierarchical way.

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.