Skip to main content

指定された pathPage を取得します。

.GetPage は指定された path のページを返します。 SitePage の両方がこのメソッドを実装しています。 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 の例

このコード スニペットは — パーシャル の形式で — 以下のことが実行できます。

  1. tags タクソノミー のインデックス オブジェクトを取得します。
  2. このオブジェクトを変数 $t に代入します。
  3. タクソノミーに関連する用語を人気順で並べ替えます。
  4. タクソノミーの中で最も人気のある上位 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 メソッドを使用する必要があります。

例については、ドキュメントの 「ヘッドレス バンドル」 を参照してください。