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...
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.
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ć:
- Dostęp do paginatora:
Użyj.Paginator
na stronie listy, aby pracować z paginacją. - Sprawdzenie bieżącej strony:
Użyj.Paginator.PageNumber
, aby uzyskać numer bieżącej strony. - 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.
- Jeśli na stronie 1, pokaż zwykły tytuł (
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>