mirror of
https://github.com/gohugoio/hugoDocs.git
synced 2025-10-17 13:40:29 -04:00
2.9 KiB
2.9 KiB
title | linktitle | description | godocref | date | publishdate | lastmod | categories | tags | signature | workson | hugoversion | relatedfuncs | deprecated | toc | needsexample | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
where | where | Filters an array to only the elements containing a matching value for a given field. | 2017-02-01 | 2017-02-01 | 2017-02-01 |
|
|
|
|
false | true | true |
where
filters an array to only the elements containing a matching value for a given field.
{{ range where .Data.Pages "Section" "post" }}
{{ .Content }}
{{ end }}
It can be used by dot-chaining the second argument to refer to a nested element of a value.
+++
series: golang
+++
{{ range where .Site.Pages "Params.series" "golang" }}
{{ .Content }}
{{ end }}
It can also be used with the logical operators !=
, >=
, in
, etc. Without an operator, where
compares a given field with a matching value equivalent to =
.
{{ range where .Data.Pages "Section" "!=" "post" }}
{{ .Content }}
{{ end }}
The following logical operators are vailable with where
:
=
,==
,eq
: True if a given field value equals a matching value!=
,<>
,ne
: True if a given field value doesn't equal a matching value>=
,ge
: True if a given field value is greater than or equal to a matching value>
,gt
: True if a given field value is greater than a matching value<=
,le
: True if a given field value is lesser than or equal to a matching value<
,lt
: True if a given field value is lesser than a matching valuein
: True if a given field value is included in a matching value. A matching value must be an array or a slicenot in
: True if a given field value isn't included in a matching value. A matching value must be an array or a sliceintersect
: True if a given field value that is a slice / array of strings or integers contains elements in common with the matching value. It follows the same rules as the intersect function.
Using where
with intersect
{{ range where .Site.Pages ".Params.tags" "intersect" .Params.tags }}
{{ if ne .Permalink $.Permalink }}
{{ .Render "summary" }}
{{ end }}
{{ end }}
Using where
with first
{{ range first 5 (where .Data.Pages "Section" "post") }}
{{ .Content }}
{{ end }}
Nesting where
Clauses
Needs Example
Unset Fields
Filtering only works for set fields. To check whether a field is set or exists, you can use the operand nil
.
This can be useful to filter a small amount of pages from a large pool. Instead of set field on all pages, you can set field on required pages only.
Only the following operators are available for nil
=
,==
,eq
: True if the given field is not set.!=
,<>
,ne
: True if the given field is set.
{{ range where .Data.Pages ".Params.specialpost" "!=" nil }}
{{ .Content }}
{{ end }}