Count
Syntax
Returns
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.mdTo 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