2017-08-10 11:18:22 -04:00
---
title: .GetPage
description: "Gets a `Page` of a given `Kind` and `path` ."
godocref:
date: 2017-02-01
publishdate: 2017-02-01
lastmod: 2017-02-01
categories: [functions]
menu:
docs:
parent: "functions"
2017-09-21 13:03:00 -04:00
keywords: [sections,lists,indexes]
2018-04-02 02:53:34 -04:00
signature: [".GetPage KIND PATH"]
2017-08-10 11:18:22 -04:00
workson: []
hugoversion:
relatedfuncs: []
deprecated: false
aliases: []
---
2018-04-02 02:53:34 -04:00
Every `Page` has a [`Kind` attribute][page_kinds] that shows what kind of page it is. While this attribute can be used to list pages of a certain `kind` using `where` , often it can be useful to fetch a single page by its path.
2017-08-10 11:18:22 -04:00
2018-04-02 02:53:34 -04:00
`.GetPage` returns a page of a given `Kind` and `path` .
{{% note %}}
If the `path` is `"foo/bar.md"` , it can be written as exactly that, or broken up
into multiple strings as `"foo" "bar.md"` .
{{% /note %}}
2017-08-10 11:18:22 -04:00
```
{{ with .Site.GetPage "section" "blog" }}{{ .Title }}{{ end }}
```
2018-04-02 02:53:34 -04:00
This method wil return `nil` when no page could be found, so the above will not print anything if the blog section is not found.
2017-08-10 11:18:22 -04:00
2018-04-02 02:53:34 -04:00
For a regular page (whose `Kind` is `page` ):
2017-08-10 11:18:22 -04:00
```
2018-04-02 02:53:34 -04:00
{{ with .Site.GetPage "page" "blog/my-post.md" }}{{ .Title }}{{ end }}
2017-08-10 11:18:22 -04:00
```
2018-04-02 02:53:34 -04:00
Note that the `path` can also be supplied like this, where the slash-separated
path elements are added as separate strings:
2017-08-10 11:18:22 -04:00
```
2018-04-02 02:53:34 -04:00
{{ with .Site.GetPage "page" "blog" "my-post.md" }}{{ .Title }}{{ end }}
2017-08-10 11:18:22 -04:00
```
## `.GetPage` Example
This code snippet---in the form of a [partial template][partials]---allows you to do the following:
1. Grab the index object of your `tags` [taxonomy][].
2. Assign this object to a variable, `$t`
3. Sort the terms associated with the taxonomy by popularity.
4. Grab the top two most popular terms in the taxonomy (i.e., the two most popular tags assigned to content.
{{< code file = "grab-top-two-tags.html" > }}
< ul class = "most-popular-tags" >
2018-04-02 02:53:34 -04:00
{{ $t := .Site.GetPage "taxonomyTerm" "tags" }}
2017-08-10 11:18:22 -04:00
{{ range first 2 $t.Data.Terms.ByCount }}
2018-04-02 02:53:34 -04:00
< li > {{ . }}< / li >
2017-08-10 11:18:22 -04:00
{{ end }}
< / ul >
{{< / code > }}
2018-04-02 02:53:34 -04:00
## `.GetPage` on Page Bundles
If the page retrieved by `.GetPage` is a [Leaf Bundle][leaf_bundle], and you
need to get the nested _**page** resources_ in that, you will need to use the
methods in `.Resources` as explained in the [Page Resources][page_resources]
section.
See the [Headless Bundle][headless_bundle] documentation for an example.
2017-08-10 11:18:22 -04:00
[partials]: /templates/partials/
[taxonomy]: /content-management/taxonomies/
2018-04-02 02:53:34 -04:00
[page_kinds]: /templates/section-templates/#page-kinds
[leaf_bundle]: /content-management/page-bundles/#leaf-bundles
[headless_bundle]: /content-management/page-bundles/#headless-bundle
[page_resources]: /content-management/page-resources/