.GetPage
指定された path
の Page
を取得します。
.GetPage
は指定された path
のページを返します。 Site
と Page
の両方がこのメソッドを実装しています。 Page
バリアントは、相対パス (つまり、先頭に /
がないパス) が指定された場合、現在のページからの相対パスを探します。
注意: Hugo 0.45 では、
.GetPage
API を見直して簡素化しました。 それ以前は、たとえば {{ .Site.GetPage "section" "blog" }}
のように、パスに加えて Kind
属性を指定する必要がありました。これは現在も有効ですが、不要になりました。
{{ with .Site.GetPage "/blog" }}{{ .Title }}{{ end }}
このメソッドは、ページが見つからない場合は nil
を返すため、ブログ セクションが見つからない場合、上記は何も出力しません。
ブログ セクションで通常ページを見つけるには、以下のようにします。
{{ with .Site.GetPage "/blog/my-post.md" }}{{ .Title }}{{ end }}
また、Page
も .GetPage
メソッドを提供するため、上記は以下のようになります。
{{ with .Site.GetPage "/blog" }}
{{ with .GetPage "my-post.md" }}{{ .Title }}{{ end }}
{{ end }}
.GetPage と多言語対応サイト
これまでの例では、投稿を検索するためにコンテンツの完全なファイル名を使用していました。コンテンツの構成によっては (ファイル名に言語コードが含まれているかどうか、たとえば my-post.en.md
など)、拡張子なしで検索を行いたい場合があります。 これにより、ページの現在の言語バージョンが取得されます。
{{ with .Site.GetPage "/blog/my-post" }}{{ .Title }}{{ end }}
.GetPage の例
このコード スニペットは — パーシャル の形式で — 以下のことが実行できます。
tags
タクソノミー のインデックス オブジェクトを取得します。- このオブジェクトを変数
$t
に代入します。 - タクソノミーに関連する用語を人気順で並べ替えます。
- タクソノミーの中で最も人気のある上位 2 つの用語 (つまり、コンテンツに割り当てられた最も人気のある 2 つのタグ) を取得します。
grab-top-two-tags.html
<ul class="most-popular-tags">
{{ $t := .Site.GetPage "/tags" }}
{{ range first 2 $t.Data.Terms.ByCount }}
<li>{{ . }}</li>
{{ end }}
</ul>
ページバンドルで .GetPage
を使用する
.GetPage
によって取得されたページが リーフバンドル
であり、その中でネストされた ページ リソース を取得する必要がある場合は、ページリソース
セクションで説明したように .Resources
メソッドを使用する必要があります。
例については、ドキュメントの 「ヘッドレス バンドル」 を参照してください。