--- title: Taxonomies description: Returns a data structure containing the site's Taxonomy objects, the terms within each Taxonomy object, and the pages to which the terms are assigned. categories: [] keywords: [] action: related: [] returnType: page.TaxonomyList signatures: [SITE.Taxonomies] --- Conceptually, the `Taxonomies` method on a `Site` object returns a data structure such as: {{< code-toggle >}} taxonomy a: - term 1: - page 1 - page 2 - term 2: - page 1 taxonomy b: - term 1: - page 2 - term 2: - page 1 - page 2 {{< /code-toggle >}} For example, on a book review site you might create two taxonomies; one for genres and another for authors. With this site configuration: {{< code-toggle file=hugo >}} [taxonomies] genre = 'genres' author = 'authors' {{< /code-toggle >}} And this content structure: ```text content/ ├── books/ │ ├── and-then-there-were-none.md --> genres: suspense │ ├── death-on-the-nile.md --> genres: suspense │ └── jamaica-inn.md --> genres: suspense, romance │ └── pride-and-prejudice.md --> genres: romance └── _index.md ``` Conceptually, the taxonomies data structure looks like: {{< code-toggle >}} genres: - suspense: - And Then There Were None - Death on the Nile - Jamaica Inn - romance: - Jamaica Inn - Pride and Prejudice authors: - achristie: - And Then There Were None - Death on the Nile - ddmaurier: - Jamaica Inn - jausten: - Pride and Prejudice {{< /code-toggle >}} To list the "suspense" books: ```go-html-template ``` Hugo renders this to: ```html ``` {{% note %}} Hugo's taxonomy system is powerful, allowing you to classify content and create relationships between pages. Please see the [taxonomies] section for a complete explanation and examples. [taxonomies]: /content-management/taxonomies/ {{% /note %}} ## Examples ### List content with the same taxonomy term If you are using a taxonomy for something like a series of posts, you can list individual pages associated with the same term. For example: ```go-html-template ``` ### List all content in a given taxonomy This would be very useful in a sidebar as “featured content”. You could even have different sections of “featured content” by assigning different terms to the content. ```go-html-template ``` ### Render a site's taxonomies The following example displays all terms in a site's tags taxonomy: ```go-html-template ``` This example will list all taxonomies and their terms, as well as all the content assigned to each of the terms. {{< code file=layouts/partials/all-taxonomies.html >}} {{ with .Site.Taxonomies }} {{ $numberOfTerms := 0 }} {{ range $taxonomy, $terms := . }} {{ $numberOfTerms = len . | add $numberOfTerms }} {{ end }} {{ if gt $numberOfTerms 0 }} {{ end }} {{ end }} {{< /code >}}