Count
Syntax
TAXONOMY.Count TERM
Returns
int
The Count
method on a Taxonomy
object returns the number of number of weighted pages to which the given term has been assigned.
Before we can use a Taxonomy
method, we need to capture a Taxonomy
object.
Capture a taxonomy object
Consider this site configuration:
taxonomies:
author: authors
genre: genres
[taxonomies]
author = 'authors'
genre = 'genres'
{
"taxonomies": {
"author": "authors",
"genre": "genres"
}
}
And this content structure:
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
To capture the “genres” taxonomy object from within any template, use the Taxonomies
method on a Site
object.
{{ $taxonomyObject := .Site.Taxonomies.genres }}
To capture the “genres” taxonomy object when rendering its page with a taxonomy template, use the Terms
method on the page’s Data
object:
{{ $taxonomyObject := .Data.Terms }}
To inspect the data structure:
<pre>{{ debug.Dump $taxonomyObject }}</pre>
Although the Alphabetical
and ByCount
methods provide a better data structure for ranging through the taxonomy, you can render the weighted pages by term directly from the Taxonomy
object:
{{ range $term, $weightedPages := $taxonomyObject }}
<h2><a href="{{ .Page.RelPermalink }}">{{ .Page.LinkTitle }}</a></h2>
<ul>
{{ range $weightedPages }}
<li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>
{{ end }}
</ul>
{{ end }}
In the example above, the first anchor element is a link to the term page.
Count the weighted pages
Now that we have captured the “genres” Taxonomy
object, let’s count the number of weighted pages to which the “suspense” term has been assigned:
{{ $taxonomyObject.Count "suspense" }} → 3