Drupal - How do I override a taxonomy/term/% list with a view?

All of these answers are great solutions, and thanks for taking the time to provide such infomative answers. Ashlar, your response taught me a lot about how taxonomy works works as well as the relationship between views and taxonomy.

I found a solution that works great for my situation, and I will share that in case it may help you guys too.

As I explained above, the my problem was that my view, with no argument, supplied the results I wanted, but the default taxonomy view with an argument, which was not what I wanted.

To solve this, I installed the module Taxonomy Display http://drupal.org/project/taxonomy_display. I then reconfigured each view to have Taxonomy Term ID as an argument.

Taxonomy display lets you associate a vocabulary with a particular view. Now, when I click on vehicles/trucks, which is an alias for taxonomy/term/3, the view takes over and this is actually rendered correctly maintaining the integrity of the field structure.

If anyone wants to know more details about the configuration please let me know.


I believe there are several factors to consider in your setup:

  • Every path must be unique to access a page, a term, a view, or a page panel If you have two pieces of content with the same address, you lose control of the display. Drupal gives taxonomy term precedence over Views so it will not be called. The View definition using taxonomy/term/# will intercept the taxonomy term, but as you indicated, does not display a meaningful URL.

  • Views do not respond to aliases. That is because the first thing Drupal does with any request is to convert the alias to a node/nid format standard for all Drupal content. So in your case vehicles/trucks is converted to the node/# assigned to the view. View cannot take context from an alias directly.

To get what you want you do one of several things.

  • Create a menu with the callbacks set to the path of your view. This will generate the correct URL and allow the View to respond.

  • Use Panels with Page Manager (in Ctools Suite) enabled. If you define a Page Panel defined for the appropriate URL you can place your View in the panel pane or pass the context from the panel page directly to a Views content pane. A content pane does not have a path. Instead it takes the contexts such as the path, set by the page panel directly, to create its content. This video series at nodeone.se does an excellent job of demonstrating how to use panels and page manager effectively.

  • Another way to get views content to the screen is to use quicktabs module. I don't think it fits your specific situation, but it also can directly tap into views by selecting the tabs you define for a page.


Views has a built-in view that emulates and overrides taxonomy terms. Simply enable it to override taxonomy listings with views. Taxonomy view