Files
hugo/docs/content/en/methods/taxonomy/ByCount.md
2024-06-21 09:41:24 +02:00

2.2 KiB
Raw Permalink Blame History

title, description, categories, keywords, action, toc
title description categories keywords action toc
ByCount Returns an ordered taxonomy, sorted by the number of pages associated with each term.
related returnType signatures
methods/taxonomy/Alphabetical
page.OrderedTaxonomy
TAXONOMY.ByCount
true

The ByCount method on a Taxonomy object returns an ordered taxonomy, sorted by the number of pages associated with each term.

While a Taxonomy object is a map, an ordered taxonomy is a slice, where each element is an object that contains the term and a slice of its weighted pages.

{{% include "methods/taxonomy/_common/get-a-taxonomy-object.md" %}}

Get the ordered taxonomy

Now that we have captured the “genres” Taxonomy object, lets get the ordered taxonomy sorted by the number of pages associated with each term:

{{ $taxonomyObject.ByCount }}

To reverse the sort order:

{{ $taxonomyObject.ByCount.Reverse }}

To inspect the data structure:

<pre>{{ debug.Dump $taxonomyObject.ByCount }}</pre>

{{% include "methods/taxonomy/_common/ordered-taxonomy-element-methods.md" %}}

Example

With this template:

{{ range $taxonomyObject.ByCount }}
  <h2><a href="{{ .Page.RelPermalink }}">{{ .Page.LinkTitle }}</a> ({{ .Count }})</h2>
  <ul>
    {{ range .Pages.ByTitle }}
      <li><a href="{{ .RelPermalink }}">{{ .Title }}</a></li>
    {{ end }}
  </ul>
{{ end }}

Hugo renders:

<h2><a href="/genres/suspense/">suspense</a> (3)</h2>
<ul>
  <li><a href="/books/and-then-there-were-none/">And then there were none</a></li>
  <li><a href="/books/death-on-the-nile/">Death on the nile</a></li>
  <li><a href="/books/jamaica-inn/">Jamaica inn</a></li>
</ul>
<h2><a href="/genres/romance/">romance</a> (2)</h2>
<ul>
  <li><a href="/books/jamaica-inn/">Jamaica inn</a></li>
  <li><a href="/books/pride-and-prejudice/">Pride and prejudice</a></li>
</ul>