Drupal is exceptionally good at creating exactly the right data model for your content. As you begin modeling your content, you should also think about how you will retrieve and display, or list, the content on your site.
This article explores five ways you can list content on your site once it has been created.
- Curated lists of content: Menus
- Categorization of content: Vocabularies and taxonomies
- Discretionary lists of related content: Views
- Wayfinders for people: Breadcrumbs
- Content maps for search engines: Sitemaps
The experts will already see some flaws with my categories: you can use Draggable views and Nodequeue to manually curate Views, and you can use Menu block to improve the wayfinding experience. Let's stick with the broad strokes for now though.
Curated Lists with Menus
Menus allow you to manually curate a list of content which exists on your site, almost like a Choose Your Own Adventure of links (See Figure A).
Once a menu has been created, it becomes available as a block, which you can place into any region of your site (See Figure B).
To extend the usability of the core Menu module, you may want to use one of the following contributed modules: Menu block; DHTML menu, Superfish, or Nice menus; Menu position; and Navigation 404.
Categorized Content with Taxonomy
Humans seem to have an insatiable need to classify things. We build libraries with books sorted by topic, we use Latin naming conventions to sort plants and animals into families, and we use categories to sort our blog posts. This science of naming and classifying things is known as taxonomy.
Within Drupal, you can apply categories to your content using taxonomy terms from controlled vocabularies (single or multiple hierarchy), or through free tagging (no hierarchy) (See Figure C).
Within each vocabulary, you may have as many terms as you like. The diamonds in the previous diagram represent terms included as part of one vocabulary. Taxonomy on its own isn’t much good; you will also need to apply these terms to your content nodes (See Figure D).
If your taxonomy terms are hierarchical, you can create dynamic menus from them with the contributed module Taxonomy Menu. Typically, though, taxonomy terms are exposed as Views.
Discretionary Lists with Views
Where menus allow you to curate items into a list one at a time, Views allows you to create dynamically generated content based on arbitrary filters. For example, you may want a list of the latest blog entries on your site, or perhaps the latest content which has been tagged with a specific taxonomy term. Views allows you to set up the necessary filters to have these lists of content created as the content is added to your site. Views is, in short, the ultimate list-making module.
You can also extend Views to create a simple list of recent comments, a complex photo gallery, a business directory, or just about any other type of list you can think of. When you create your view, you will need to think about the common characteristics for the content (for example "all pictures tagged with a term from the vocabulary 'Portfolio'") as well as a sort order (for example, "most recent first").
Views allows you to create display variants. The most popular options are pages and blocks. You may also want to create a feed, a glossary, or a list of related content. I like to group similar views into a single view that has multiple displays. I find it’s easier to keep track of everything this way. For example, I might want to create a blog full-page display, along with a block display which lists recent news items, and a news feed.
To use Views in Drupal 7, you will need to download the Views module and its companion module, CTools. These modules are available in core as of Drupal 8.
Wayfinding with Breadcrumbs
Breadcrumbs leave a trail of links; the trail allows visitors to see the context of where they are relative to the main page of your site (See Figure E).
Drupal, however, does not enforce a strict, single path into content. Without context, your breadcrumb trail is rendered virtually useless to visitors. Fortunately, there’s a module for that too: Custom Breadcrumbs. This contributed module allows administrators to set up parameterized breadcrumb trails for any node type.
Content Maps for Search Engines with Site Maps
In addition to the human-readable navigation systems, you should consider adding a machine-readable navigation system for your content search engines with XML Sitemap.
For Further Reading
Creating lists of content is covered in greater detail in my book, Drupal User's Guide. The diagrams from this article are pulled from Chapters 10 and 13, along with the free bonus material which is available from http://wdog.it/5/1/sbg.
Image:"Let’s go-go round again" by antphotos is licensed under
CC BY-NC-ND 2.0