Jak dodać numer strony do tytułu strony listy wpisów w blogu w Hugo

Niektóre wyszukiwarki nie lubią, gdy strona internetowa ma strony z takimi samymi tytułami...

Page content

Aby dodać numer strony do tytułu strony listy bloga w Hugo, należy zmodyfikować szablon listy

(zwykle layouts/blog/list.html lub layouts/_default/list.html, czasem nawet layouts/_default/baseof.html) w celu wykrycia, czy znajdujesz się na stronie paginowanej. Następnie dynamicznie dostosuj tytuł, dodając numer strony, gdy to odpowiednie.

hugo-site-generator

Ogólny opis

Podstawowa idea polega na wykorzystaniu Hugo’s wbudowanego obiektu paginator i warunkowego renderowania numeru strony, jeśli jest większy niż 1. Oto jak możesz to zrobić:

  1. Dostęp do paginatora:
    Użyj .Paginator na stronie listy, aby pracować z paginacją.
  2. Sprawdzenie bieżącej strony:
    Użyj .Paginator.PageNumber, aby uzyskać numer bieżącej strony.
  3. Logika tytułu warunkowego:
    • Jeśli na stronie 1, pokaż zwykły tytuł ({{ .Title }}).
    • Jeśli na stronie 2 lub wyższej, dołącz " - Strona X" do tytułu.

Przykład kodu szablonu Hugo (dla części list.html lub w tagu `` w baseof.html/layouts):


  {{ .Title }}{{ if gt .Paginator.PageNumber 1 }} - Strona {{ .Paginator.PageNumber }}{{ end }}

Lub w rzeczywistym kodzie strony:


  {{ .Title }}{{ if gt .Paginator.PageNumber 1 }} - Strona {{ .Paginator.PageNumber }}{{ end }}

Uwagi:

  • To działa na paginowanych stronach list (sekcja, kategoryzacja itp.), ponieważ .Paginator jest dostępny.
  • .Paginator.PageNumber zwraca numer bieżącej strony.
  • Dodawaj “Strona X” tylko na stronach kolejnych, nie na pierwszej stronie.

Odnośniki:

  • Przewodniki Hugo dotyczące list i paginacji pokazują, że .Paginator.Project i dynamiczne nagłówki są zalecanym sposobem.
  • Dostosuj lokalizację w zależności od tego, czy chcesz, aby ten element znajdował się w nagłówku przeglądarki (czyli <title>) czy w nagłówkach na stronie.

Jeśli chcesz, aby numer strony pojawiał się w elemencie HTML <title> dla celów SEO, umieść powyższą logikę w odpowiednim miejscu w nagłówku HTML (często w layouts/_default/baseof.html). Dla wizualnych nagłówków stron, umieść ją tam, gdzie wypisujesz tytuł sekcji.

Nie ma oficjalnego shortcode do tego – jest to wzorzec ustawiony bezpośrednio za pomocą Hugo w szablonach w swoich układach.

Modyfikacja motywu MainRoad

Ta strona obecnie korzysta z motywu Mainroad. Aby poprawić SEO na tej stronie, naprawiłem generowanie tytułów na stronach indeksu bloga w ten sposób:

<title>{{ block "title" . }}{{ if .IsHome }}{{ .Site.Title }}{{ if and (eq .Kind "home") .Paginator (gt .Paginator.PageNumber 1) }} - Strona {{ .Paginator.PageNumber }}{{ end }}{{ else }}{{ .Title }}{{ if and (in (slice "section" "taxonomy" "term") .Kind) .Paginator (gt .Paginator.PageNumber 1) }} - Strona {{ .Paginator.PageNumber }}{{ end }} - {{ .Site.Title }}{{ end }}{{ end }}</title>

Przydatne linki